Quelle est la raison technique pour laquelle SSLCertificateKeyFile est nécessaire (la clé privée)? Où est-ce utilisé et pour quoi?
Le fichier de certificat SSL contient le certificat X.509 (qui, à son tour, contient une clé publique utilisée pour le cryptage). Le certificat SSL Key File contient la clé privée correspondant à la clé publique du certificat. Pour que le serveur Web crypte le trafic et /, il doit disposer à la fois de la clé publique (certificat) et de la clé privée correspondante. Apache, contrairement à beaucoup d'autres produits serveur, stocke la clé et le certificat dans des fichiers séparés. Les produits basés sur Java, par exemple, utilisent généralement des fichiers Java KeyStore, qui sont une base de données cryptée contenant à la fois le certificat et la clé privée.
Habituellement, trois directives sont incluses:
SSLCertificateFile /opt/csw/Apache2/certs/icompany/publicCert.pem
SSLCertificateChainFile /opt/csw/Apache2/certs/icompany/chain.pem
SSLCertificateKeyFile /opt/csw/Apache2/certs/icompany/PrivateKeyCert.pem
SSLCertificateFile
doit contenir uniquement la partie publique de votre certificat, que vous souhaitez transmettre du site Web au client.
Si SSLCertificateChainFile
est spécifié, le serveur Web joindra les certificats associés (pour constituer une chaîne complète à une autorité de certification racine) au certificat de serveur Web. Vous pouvez également placer la partie privée de votre certificat dans le fichier comme spécifié dans SSLCertificateFile
mais ceci estPASrecommandé pour des raisons de sécurité (par exemple, le serveur Web a un bogue, un tampon offlow s'écoule et affiche la clé privée pour l'attaquant).
Au lieu de cela, placez uniquement la clé privée dans un fichier séparé et déclarez-la dans SSLCertificateKeyFile
Pour un aperçu de la cryptographie à clé publique, y compris l'utilisation de clés privées:
http://en.wikipedia.org/wiki/Public-key_cryptography#How_it_works
Et une ventilation détaillée de toutes les étapes utilisées dans TLS, le protocole utilisé par votre serveur pour le trafic https, qui indique exactement où la clé privée est utilisée: