Le proxy SSL au niveau du noyau peut améliorer la vitesse de traitement des paquets SSL sur un serveur Web Apache 2.2. Cette procédure implémente le scénario simple illustré à la Figure 3–1.
Avant de commencer
Vous avez configuré un serveur Web Apache 2.2. Ce serveur Web est inclus dans Oracle Solaris.
Vous devez prendre le rôle root.
# svcadm disable svc:/network/http:apache22
Si seul le paramètre SSLCertificateFile est indiqué dans le fichier ssl.conf, le fichier spécifié peut être utilisé directement pour le proxy SSL au niveau du noyau.
Si le paramètre SSLCertificateKeyFile est également indiqué, vous devez combiner le fichier de certificat et le fichier de clé privée. Exécutez une commande semblable à l'exemple suivant pour combiner les fichiers :
# cat cert.pem key.pem > cert-and-key.pem
La page de manuel ksslcfg(1M) contient la liste complète des options. Voici les paramètres que vous devez fournir :
key-format : utilisé avec l'option –f pour définir le certificat et le format de clé. Pour le proxy SSL au niveau du noyau, les formats pris en charge sont les suivants : pkcs11, pem et pkcs12.
key-and-certificate-file : utilisé avec l'option –i pour définir l'emplacement du fichier qui stocke la clé de serveur et le certificat pour les options key-format pem ou pkcs12.
password-file : utilisé avec l'option –p pour obtenir le mot de passe servant à chiffrer la clé privée pour les options key-formatpem ou pkcs12. Pour pkcs11, le mot de passe est utilisé pour authentifier le marqueur PKCS #11. Vous devez protéger le fichier de mots de passe à l'aide d'autorisations 0400. Ce fichier est requis pour les réinitialisations sans l'intervention d'un opérateur.
token-label : utilisé avec l'option –T pour indiquer le marqueur PKCS #11.
certificate-label : utilisé avec l'option –C pour sélectionner l'étiquette de l'objet de certificat dans le marqueur PKCS#11.
proxy-port : utilisé avec l'option –x pour définir le port proxy SSL. Vous devez spécifier un port différent du port standard 80. Le serveur Web est à l'écoute du trafic de texte en clair non chiffré sur le port proxy SSL. Généralement, la valeur est 8443.
ssl-port : indique le port d'écoute pour le proxy SSL au niveau du noyau. Généralement, la valeur est 443.
Indiquez le port proxy SSL et les paramètres associés à l'aide de l'un des formats suivants :
# ksslcfg create -f key-format -i key-and-certificate-file \ -p password-file -x proxy-port ssl-port
# ksslcfg create -f pkcs11 -T PKCS11-token -C certificate-label \ -p password-file -x proxy-port ssl-port
# svcs svc:/network/ssl/proxy STATE STIME FMRI online 02:22:22 svc:/network/ssl/proxy:default
La sortie suivante indique que l'instance de service n'a pas été créée :
svcs: Pattern 'svc:/network/ssl/proxy' doesn't match any instances STATE STIME FMRI
Modifiez le fichier /etc/apache2/2.2/http.conf et ajoutez une ligne pour définir le port proxy SSL. Si vous utilisez l'adresse IP du serveur, le serveur Web écoute uniquement sur cette interface. La ligne est similaire à ce qui suit :
Listen proxy-port
Le service du serveur Web peut uniquement démarrer une fois que l'instance proxy SSL au niveau du noyau a démarré. Les commandes suivantes établissent cette dépendance :
# svccfg -s svc:/network/http:apache22 svc:/network/http:apache22> addpg kssl dependency ...apache22> setprop kssl/entities = fmri:svc:/network/ssl/proxy:kssl-INADDR_ANY-443 ...apache22> setprop kssl/grouping = astring: require_all ...apache22> setprop kssl/restart_on = astring: refresh ...apache22> setprop kssl/type = astring: service ...apache22> end
# svcadm enable svc:/network/http:apache22