Sommaire

1. Présentation
2. Configuration
3. Génération

1   Présentation

Cette fiche a pour but de mettre en évidence une méthode simple pour générer des certificates auto-signés avec openssl, afin de garantir la sécurité des transactions entre un serveur et ces différents clients. Cette fiche n'est utilisée qu'à titre de mémo, permettant d'avoir toute suite un fichier de configuration et la commande additionnelle.

2   Configuration

Le fichier de configuration utilisé pour générer le certificat est openssl.cnf :
# File : openssl.cnf
# Sample configuration file for a self-signed certificate.
#

####################################################################
[ req ]
default_bits                    = 2048
default_keyfile                 = privkey.pem
distinguished_name              = req_distinguished_name
attributes                      = req_attributes
x509_extensions                 = server_cert
string_mask                     = utf8only 


####################################################################
[ req_distinguished_name ]
countryName                     = Country Name (2 letter code)
countryName_default             = FR 
countryName_min                 = 2
countryName_max                 = 2

stateOrProvinceName             = State or Province Name (full name)
stateOrProvinceName_default     = Bretagne

localityName                    = Locality Name (eg, city)
localityName_default            = Saint-Malo

0.organizationName              = Organization Name (eg, company)
0.organizationName_default      = Stones

organizationalUnitName          = Organizational Unit Name (eg, section)

commonName                      = Common Name (eg, YOUR name)
commonName_max                  = 64

emailAddress                    = Email Address
emailAddress_max                = 64


####################################################################
[ req_attributes ]
challengePassword               = A challenge password
challengePassword_min           = 4
challengePassword_max           = 20

unstructuredName                = An optional company name


####################################################################
[server_cert ]

basicConstraints                = critical, CA:FALSE
subjectKeyIdentifier            = hash
keyUsage                        = digitalSignature, keyEncipherment
extendedKeyUsage                = serverAuth, clientAuth
nsCertType                      = server
nsComment                       = "Certificat Serveur XXXXX"
Il est ainsi possible d'y définir les valeurs par défaut pour certains champs, et de réutiliser la configuration.

3   Génération

Maintenant, pour obtenir le certificat et la clef, il nous faut effectuer la commande suivante :
$ openssl req -x509 -new -config openssl.cnf -out server_cert.pem -keyout server_key.pem -days 365 -nodes