首先 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.crt
example.com.key
首先,确保 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的进度条了(通常在你浏览器中用一把锁来表示)。