SSL Apache HTTP服务器上
问题描述:
我有2个CRT文件Apache服务器:SSL Apache HTTP服务器上
- 1_root_bundle.crt
- 2_my_domain_name.com.crt
而另一束:
- 1_Intermediate.crt
- 2_my_domain_name.com.crt
- root.crt中
我已经修改
/etc/apache2/sites-available/default-ssl.conf
而且尝试了各种组合的上述文件,但之后的Apache2服务重新启动SSL不工作,浏览器显示“连接不安全”:
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/1_Intermediate.crt
SSLCertificateKeyFile /etc/apache2/ssl/2_my_domain_name.com.crt
SSLCertificateChainFile /etc/apache2/ssl/root.crt
如何在Apache服务器上创建SSL?
答
它缺少证书私钥的密钥文件。通常它有.key
等扩展2_my_domain_name.com.key
和文件内容与开始-----BEGIN PRIVATE KEY-----
你的配置应该看起来像这样
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/2_my_domain_name.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/2_my_domain_name.com.key
SSLCertificateChainFile /etc/apache2/ssl/1_root_bundle.crt
的SSLCertificateChainFile指向所有功能于一身的文件,你可以组装的证书证书颁发机构(CA)构成服务器证书的证书链。
所以确保1_root_bundle.crt
包含1_Intermediate.crt
内容,并为PEM格式(与--- BEGIN CERTIFICATE --- ----END CERTIFICATE---
头的base64)
如果你使用Apache> = 2.4.8你也可以串联指着SSLCertificateFile
当SSLCertificateFile扩展为也从服务器证书文件加载中间CA证书时,SSLCertificateChainFile在版本2.4.8中过时。
答
1)安装Apache HTTP Server,mod_ssl的
2)配置的httpd
别忘了停用的SSLv2和SSLv3的,因为他们是脆弱的。
# Toggle on the SSL/TLS Protocol Engine
SSLEngine On
# The signed certificate of the server
SSLCertificateFile /etc/pki/tls/myserver/myserver.crt
# The private key of the server
SSLCertificateKeyFile /etc/pki/tls/myserver/myserver.key
# The intermediate_certificate of the server
SSLCertificateChainFile /etc/pki/tls/myserver/tls-ca-chain.pem
# Accept only strong encryption
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK
SSLHonorCipherOrder on
3)检查证书文件的权限。
UPD: 如何创建一个步骤的主要和证书签名请求:
openssl req -new -newkey rsa:2048 -nodes -keyout myserver.key -out myserver.csr
接下来你要这个CSR文件发送到证书颁发机构之一。他们将发回您的签名证书和中间证书。
您也可以创建一个自签名证书。
如何获取.key文件? – Justas
你是谁(应该)创建私钥。你可以用openssl生成它。然后您可以从密钥中创建一个csr(证书签名请求)文件。您必须将其发送给证书颁发机构,他们将发回与您的密钥匹配的签名证书和中间证书。 – BlackCat