Apache 如何安装证书?
格式说明
首先 Apache 使用的证书是 .pem
格式的。什么是 .pem
格式,就是以 -----BEGIN xxx-----
开头的文件,如:
-----BEGIN CERTIFICATE-----
MIID6jCCAtKgAwIBAgIBFDANBgkqhkiG9w0BAQsFADB7MQswCQYDVQQGEwJDTjER
MA8GA1UECAwIU2hhbmdoYWkxDzANBgNVBAoMBmRlZXB6ejEPMA0GA1UECwwGZGVl
cHp6MRMwEQYDVQQDDApkZWVwenouY29tMSIwIAYJKoZIhvcNAQkBFhNkZWVwenou
... ...
-----END CERTIFICATE-----
当然现在 openssl 新版签发的证书,在 -----BEGIN xxx-----
之前还有一段信息,我们这里就不举例了。
所以,当我门从证书服务商那里下载证书的时候需要注意证书的格式问题。选择 Apache
进行下载。
一般的,证书服务商会提供三个文件:
example.com.ca.crt
example.com.crt
example.com.key
example.com.ca.crt
,CA 中间证书。example.com.crt
,你的服务器证书文件。example.com.key
,你的私钥。
还有可能是如下文件:
example.com.crt
example.com.key
example.com.key
你的私钥文。example.com.crt
是你的证书文件或证书链文件。用文本编辑器打开,如果看到两张上面 pem 内容,即站点证书+CA中间证书。你需要将它们分别存为两个文件,如example.com.ca.crt
和example.com.crt
。如果不是,请联系证书服务商或到 这里 补全证书链。
安装证书
首先,确保 ssl 模块已经加载进 apache 了:
$ a2enmod ssl
如果你看到了 Module ssl already enabled
这样的信息就说明你成功了。如果你看到了 Enabling module ssl
,那么你还需要用下面的命令重启apache:
$ service apache2 restart
最后像下面这样修改你的虚拟主机文件(通常在/etc/apache2/sites-enabled 下):
DocumentRoot /var/www/html/
ServerName example.com
SSLEngine on
SSLCertificateFile /usr/local/ssl/crt/example.com.crt
SSLCertificateKeyFile /usr/local/ssl/example.com.key
SSLCACertificateFile /usr/local/ssl/example.com.ca.crt
你现在应该可以用 https://example.com(注意使用 https
而不是 http
)来访问你的网站了,并可以看到SSL的进度条了(通常在你浏览器中用一把锁来表示)。