| 
DIR=`pwd`/opensslPRIV=$DIR/private
 
 mkdir $DIR $PRIV $DIR/newcerts
 cp /usr/share/ssl/openssl.cnf $DIR
 replace ./demoCA $DIR -- $DIR/openssl.cnf
 
 # Créez les dossiers nécessaires : $database, $serial et $new_certs_dir
 # optionnel
 
 touch $DIR/index.txt
 echo "01" > $DIR/serial
 
 #
 # Génération du cerificat d'autorité (CA)
 #
 
 openssl req -new -x509 -keyout $PRIV/cakey.pem -out $DIR/cacert.pem \
 -config $DIR/openssl.cnf
 
 # Exemple de résultat :
 # Using configuration from /home/monty/openssl/openssl.cnf
 # Generating a 1024 bit RSA private key
 # ................++++++
 # .........++++++
 # writing new private key to '/home/monty/openssl/private/cakey.pem'
 # Enter PEM pass phrase:
 # Verifying password - Enter PEM pass phrase:
 # -----
 # You are about to be asked to enter information that will be incorporated
 # into your certificate request.
 # What you are about to enter is what is called a Distinguished Name or a DN.
 # There are quite a few fields but you can leave some blank
 # For some fields there will be a default value,
 # If you enter '.', the field will be left blank.
 # -----
 # Country Name (2 letter code) [AU]:FI
 # State or Province Name (full name) [Some-State]:.
 # Locality Name (eg, city) []:
 # Organization Name (eg, company) [Internet Widgits Pty Ltd]:MySQL AB
 # Organizational Unit Name (eg, section) []:
 # Common Name (eg, YOUR name) []:MySQL admin
 # Email Address []:
 
 #
 # Création des clé et requêtes serveur
 #
 openssl req -new -keyout $DIR/server-key.pem -out \
 $DIR/server-req.pem -days 3600 -config $DIR/openssl.cnf
 
 # Exemple de résultat :
 # Using configuration from /home/monty/openssl/openssl.cnf
 # Generating a 1024 bit RSA private key
 # ..++++++
 # ..........++++++
 # writing new private key to '/home/monty/openssl/server-key.pem'
 # Enter PEM pass phrase:
 # Verifying password - Enter PEM pass phrase:
 # -----
 # You are about to be asked to enter information that will be incorporated
 # into your certificate request.
 # What you are about to enter is what is called a Distinguished Name or a DN.
 # There are quite a few fields but you can leave some blank
 # For some fields there will be a default value,
 # If you enter '.', the field will be left blank.
 # -----
 # Country Name (2 letter code) [AU]:FI
 # State or Province Name (full name) [Some-State]:.
 # Locality Name (eg, city) []:
 # Organization Name (eg, company) [Internet Widgits Pty Ltd]:MySQL AB
 # Organizational Unit Name (eg, section) []:
 # Common Name (eg, YOUR name) []:MySQL server
 # Email Address []:
 #
 # Please enter the following 'extra' attributes
 # to be sent with your certificate request
 # A challenge password []:
 # An optional company name []:
 
 #
 # Supprimez la passe-phrase de la clé (optionnel)
 #
 
 openssl rsa -in $DIR/server-key.pem -out $DIR/server-key.pem
 
 #
 # Signez le certificat serveur
 #
 openssl ca  -policy policy_anything -out $DIR/server-cert.pem \
 -config $DIR/openssl.cnf -infiles $DIR/server-req.pem
 
 # Exemple de résultat :
 # Using configuration from /home/monty/openssl/openssl.cnf
 # Enter PEM pass phrase:
 # Check that the request matches the signature
 # Signature ok
 # The Subjects Distinguished Name is as follows
 # countryName           :PRINTABLE:'FI'
 # organizationName      :PRINTABLE:'MySQL AB'
 # commonName            :PRINTABLE:'MySQL admin'
 # Certificate is to be certified until Sep 13 14:22:46 2003 GMT (365 days)
 # Sign the certificate? [y/n]:y
 #
 #
 # 1 out of 1 certificate requests certified, commit? [y/n]y
 # Write out database with 1 new entries
 # Data Base Updated
 
 #
 # Créez les clé et requêtes client
 #
 openssl req -new -keyout $DIR/client-key.pem -out \
 $DIR/client-req.pem -days 3600 -config $DIR/openssl.cnf
 
 # Exemple de résultat :
 # Using configuration from /home/monty/openssl/openssl.cnf
 # Generating a 1024 bit RSA private key
 # .....................................++++++
 # .............................................++++++
 # writing new private key to '/home/monty/openssl/client-key.pem'
 # Enter PEM pass phrase:
 # Verifying password - Enter PEM pass phrase:
 # -----
 # You are about to be asked to enter information that will be incorporated
 # into your certificate request.
 # What you are about to enter is what is called a Distinguished Name or a DN.
 # There are quite a few fields but you can leave some blank
 # For some fields there will be a default value,
 # If you enter '.', the field will be left blank.
 # -----
 # Country Name (2 letter code) [AU]:FI
 # State or Province Name (full name) [Some-State]:.
 # Locality Name (eg, city) []:
 # Organization Name (eg, company) [Internet Widgits Pty Ltd]:MySQL AB
 # Organizational Unit Name (eg, section) []:
 # Common Name (eg, YOUR name) []:MySQL user
 # Email Address []:
 #
 # Please enter the following 'extra' attributes
 # to be sent with your certificate request
 # A challenge password []:
 # An optional company name []:
 
 #
 # Supprimez la passe-phrase de la clé (optionnel)
 #
 openssl rsa -in $DIR/client-key.pem -out $DIR/client-key.pem
 
 #
 # Signez le cerficat client
 #
 
 openssl ca  -policy policy_anything -out $DIR/client-cert.pem \
 -config $DIR/openssl.cnf -infiles $DIR/client-req.pem
 
 # Exemple de résultat :
 # Using configuration from /home/monty/openssl/openssl.cnf
 # Enter PEM pass phrase:
 # Check that the request matches the signature
 # Signature ok
 # The Subjects Distinguished Name is as follows
 # countryName           :PRINTABLE:'FI'
 # organizationName      :PRINTABLE:'MySQL AB'
 # commonName            :PRINTABLE:'MySQL user'
 # Certificate is to be certified until Sep 13 16:45:17 2003 GMT (365 days)
 # Sign the certificate? [y/n]:y
 #
 #
 # 1 out of 1 certificate requests certified, commit? [y/n]y
 # Write out database with 1 new entries
 # Data Base Updated
 
 #
 # Créez le fichier my.cnf que vous pourrez utiliser pour tester les différents certificats
 #
 
 cnf=""
 cnf="$cnf [client]"
 cnf="$cnf ssl-ca=$DIR/cacert.pem"
 cnf="$cnf ssl-cert=$DIR/client-cert.pem"
 cnf="$cnf ssl-key=$DIR/client-key.pem"
 cnf="$cnf [mysqld]"
 cnf="$cnf ssl-ca=$DIR/cacert.pem"
 cnf="$cnf ssl-cert=$DIR/server-cert.pem"
 cnf="$cnf ssl-key=$DIR/server-key.pem"
 echo $cnf | replace " " '
 ' > $DIR/my.cnf
 
 #
 # To test MySQL
 
 mysqld --defaults-file=$DIR/my.cnf &
 
 mysql --defaults-file=$DIR/my.cnf
 |