Nginx 如何配置证书?

格式说明

首先 Nginx 使用的证书是 .pem 格式的。什么是 .pem 格式,就是以 -----BEGIN xxx----- 开头的文件,如:

-----BEGIN CERTIFICATE-----
MIID6jCCAtKgAwIBAgIBFDANBgkqhkiG9w0BAQsFADB7MQswCQYDVQQGEwJDTjER
MA8GA1UECAwIU2hhbmdoYWkxDzANBgNVBAoMBmRlZXB6ejEPMA0GA1UECwwGZGVl
cHp6MRMwEQYDVQQDDApkZWVwenouY29tMSIwIAYJKoZIhvcNAQkBFhNkZWVwenou
... ...
-----END CERTIFICATE-----

当然现在 openssl 新版签发的证书,在 -----BEGIN xxx----- 之前还有一段信息,我们这里就不举例了。

所以,当我们从证书服务商那里下载证书的时候需要注意证书的格式问题。选择 NginxSLB 进行下载。

拿到证书后,你可能有如下文件:

example.com.crt
example.com.key

example.com.key 就是你的私钥文件,千万不要泄漏给别人哦。

example.com.crt 是你的证书文件,也有可能是证书链文件。用文本编辑器打开,你可能会看到两张上面提到的内容,它的内容是 站点证书+CA中间证书。我们需要的就是这样的证书链文件。如果不是,请联系证书服务商或到 这里 补全证书链。

安装证书

首先,我们需要将我们的证书和私钥上传的服务器的指定路径,假设为 /path/to/ 目录。

然后,编辑你的 Nginx 的 web 服务器的配置文件。在文件内添加如下:

server {  
    # 监听 ssl 443 端口
    listen 443 ssl;
    server_name example.com;

    # 开启 ssl
    ssl on;
    # 指定 ssl 证书路径
    ssl_certificate /path/to/example.com.crt;
    # 指定私钥文件路径
    ssl_certificate_key /path/to/example.com.key;
}

这样,配置文件已经改好了,通过:

$ service nginx force-reload

重新加载证书,观察是否有错并改正。然后你就可以通过 HTTPS 访问你的网站了。