SSL à l'arrache !

Vite fait, mal fait.

Que ceux qui veulent comprendre aillent sur des pages plus complètes, ici je fais juste une petite récap.Alors genre, on a un serveur sur laquelle on veut mettre du HTTPS ou du FTP-SSL. Pas envie d'avoir un "dummy certificate" et pas envie de passer 2 heures sur le sujet. Donc on copie-colle, on répond Yes à tout et c'est torché.

D'abord, openssl.cnf. Il se trouve, selon les distributions, quelque part sous /etc. Sur ma CentOS 5, il est dans "/etc/pki/tls". On fait un petit vi dessus, et on met :

dir             = /etc/pki/CA           # Where everything is kept
certs           = $dir/certs            # Where the issued certs are kept
crl_dir         = $dir/crl              # Where the issued crl are kept
database        = $dir/index.txt        # database index file.
new_certs_dir   = $dir/newcerts         # default place for new certs.

Un peu plus bas, on modifie la durée de vie du certificat :

default_days    = 3650                  # how long to certify for

Et pour être encore plus feignasse :

[ 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     = Ile de France
localityName                    = Locality Name (eg, city)
localityName_default            = Paris
0.organizationName              = Organization Name (eg, company)
0.organizationName_default      = Another Home Page
organizationalUnitName          = Organizational Unit Name (eg, section)
organizationalUnitName_default  = admin
commonName                      = Common Name (eg, your name or your server\\'s hostname)
commonName_max                  = 64
emailAddress                    = Email Address
emailAddress_max                = 64

OpenSSL peut faire des alias DNS pour un même certificat, alors on ajoute ça à la fin :

[ALIASES]
DNS.1 = www.anotherhomepage.org
DNS.2 = mail.anotherhomepage.org

Ensuite, on crée les répertoires et fichiers qui vont bien :

root@thunderbluff:~ #cd /etc/pki 
root@thunderbluff:/etc/pki #mkdir -p CA/newcerts 
root@thunderbluff:/etc/pki #touch CA/index.txt 
root@thunderbluff:/etc/pki #echo 01 > CA/serial 

Allez, on génère tout certificat de l'autorité, certificat serveur, clés...:

root@thunderbluff:/etc/pki #cd CA
root@thunderbluff:/etc/pki/CA #openssl req -nodes -new -x509 -keyout thunderbluff-ca.key -out thunderbluff-ca.crt
root@thunderbluff:/etc/pki/CA #openssl req -nodes -new -keyout thunderbluff.key -out thunderbluff.csr
root@thunderbluff:/etc/pki/CA #openssl ca -cert aaron-ca.crt -keyfile thunderbluff-ca.key -out thunderbluff.crt -in thunderbluff.csr

Et puis pour Vsftpd ça peut aider :

root@thunderbluff:/etc/pki/CA #cat thunderbluff.key thunderbluff.crt > thunderbluff.pem

Emballez c'est pesé !