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.crtexample.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的进度条了(通常在你浏览器中用一把锁来表示)。