Comme à l’habitude, Solaris est livré avec des examples de configurations quasiment prêtes à l’emploi. Donc :
# cd /etc/apache2 # cp httpd.conf-example httpd.conf # cp ssl-std.conf ssl.conf # vi ssl.conf # vi httpd.conf
# /usr/sfw/bin/openssl genrsa -des3 1024 > /etc/apache2/ssl.key/server.key Generating RSA private key, 1024 bit long modulus .............................++++++ ..........++++++ e is 65537 (0x10001) Enter pass phrase: xxxx Verifying - Enter pass phrase: xxxx
Non ! Ne criez pas. Il est impossible de générer sans pass phrase (item précédent). Néanmoins, on peut ensuite la supprimer. Et à quoi bon une pass phrase sur une clé privé d’un serveur web ? Le tout est de la protéger correctement sur votre serveur; si vous la laissez, aucun démarrage automatique ne pourra avoir lieu.
# mv server.key server-protected.key # openssl rsa -in server-protected.key -out server.key Enter pass phrase for server.key: xxxx writing RSA key
# /usr/sfw/bin/openssl req -new -key /etc/apache2/ssl.key/server.key > /etc/apache2/ssl.crt/server.csr 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) [US]:FR State or Province Name (full name) [Some-State]:na Locality Name (eg, city) []:TOULOUSE PLAGE Organization Name (eg, company) [Unconfigured OpenSSL Installation]:hello_world.c inc Organizational Unit Name (eg, section) []:Solaris Common Name (eg, YOUR name) []:nicolas dorfsman Email Address []:popo@exemple.com
Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Attention ! Cette procédure est à utiliser à des fins de tests. Tant que vous utiliserez ce certificat, les navigateurs qui viendront se connecter à votre web verront apparaître une joli pop-up les avertissants que votre certificat est signé par une autorité incompétente et donc que votre serveur présente un risque de sécurité.
# /usr/sfw/bin/openssl req -x509 -days 60 -key /etc/apache2/ssl.key/server.key \ -in /etc/apache2/ssl.crt/server.csr > /etc/apache2/ssl.crt/server.crt
Par défaut, apache2 est configuré pour ne pas démarrer avec le module SSl activé. Ce comportement est défini via la config livré en exemple =httpd.conf-example=. On y voit :
<IfDefine SSL> LoadModule ssl_module libexec/mod_ssl.so </IfDefine>
Pour que SSL soit effectivement défini, il suffit de démarer via un apachectl startssl au lieu de apachectl start. En l’occurence, nous sommes içi sur du Solaris 10, on va donc démarrer via les services SMF. Nous devont donc lui indiquer que le démarrage doit se faire avec SSL. Ceci se fera via la propriété httpd/ssl.
[root@nicobox /]# svcprop -p httpd/ssl apache2 false [root@nicobox /]# svccfg -s http:apache2 setprop httpd/ssl=true [root@nicobox /]# svcadm refresh http:apache2 [root@nicobox /]# svcprop -p httpd/ssl svc:network/http:apache2 true
Vous avez probablement une machine/zone qui ne sait pas faire de résolution DNS, mais vous avez un nom de VirtualHost. Si vous avez utillisé le fichier ssl-std.conf pour batir votre fichier ssl.conf vous avez probablement quelque chose comme ça : <VirtualHost _default_:443>. Remplacez _default_ par l’adresse IP de votre serveur, ça marchera mieux (voir rapport de Bug chez mozilla ).