如何为Nginx配置Comodo Positive SSL证书

最近从代理买了个Comodo Positive SSL证书,好便宜,才4.99刀/年,多年付还能继续优惠。。。

讲讲安装和配置的方法。

1、生成CSR

购买之前,先要生成CSR 文件 (Certificate Signing Request),可以在你的服务器上操作(如果安装了OpenSSL的话)

openssl req -new -newkey rsa:2048 -nodes -keyout example_com.key -out example_com.csr

会生成2个文件:

  • example_com.key -- 你的私匙,一会配置NginX会用到
  • example_com.csr -- 等会提交给证书公司的

2、购买SSL证书

我买的是Comodo Positive SSL,从代理处买的,4.99刀一年,是目前发现的最便宜的了(请不要拿免费的ssl证书来比,至于为什么自行谷歌),感兴趣的可以点这里

在经过一番配置并且提供了你的csr文件后,会发送给你一个zip包,里面有这些文件:

  • Root CA Certificate - AddTrustExternalCARoot.crt
  • Intermediate CA Certificate - COMODORSAAddTrustCA.crt
  • Intermediate CA Certificate - COMODORSADomainValidationSecureServerCA.crt
  • Your PositiveSSL Certificate - www_example_com.crt (or the subdomain you gave them)

3、合并证书

注意这一步cat的顺序很重要

cat www_example_com.crt COMODORSADomainValidationSecureServerCA.crt  COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ssl-bundle.crt

存储下来

mkdir -p /etc/nginx/ssl/example_com/
mv ssl-bundle.crt /etc/nginx/ssl/example_com/
mv example_com.key /etc/nginx/ssl/example_com/

4、在Nginx中配置

我们假设你已经有了80端口的server,那么添加如下行就可以

server {
    # 省略了一些80配置
    listen 443;

    ssl_certificate /etc/nginx/ssl/example_com/ssl-bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/example_com/example_com.key;

    # 省略若干已有配置
}

5、想让HTTP强制跳转到HTTPS

那么再添加

    ssl on;
    error_page 497  https://$host$request_uri;

6、防火墙

如果有防火墙,注意打开443,恩。。

Leave a Reply

Your email address will not be published. Required fields are marked *