购买付费Comodo SSL证书及安装配置图文教程

2018-04-04发布在 WordPress建站109884 次访问

https 正变得愈发重要,因为谷歌不止一次明确地强调会对那些配置了 https 的网站给予更高的排名。

在今年更新的课程里面 VPS 建站部分,我教了大家怎么用 LNMP 1.4 安装包自带的 SSL 安装模块进行证书安装。在以前的课程中我们用的是 lnmp1.3 版本,是手动去利用 Let’s Encrypt 安装脚本去安装 SSL 证书的。

在一些情景下,我们总会碰到需要购买付费s证书的情况,比如以下情况的任意一种:

  • Let’s Encrypt 的免费证书虽然用着也OK,但你希望安装一个效期更久的证书不需要担心短期会过期。
  • 当你有多个二级域名网站的时候,你希望能共用一个SSL证书。

那么这些情况下你就可能会需要。

比如 Let’s Encrypt 的免费证书有效期一般为 90 天,每隔 90 天之前就要进行续期(当然上一篇文章里我已经给了自动续期的教程指南)。

Let’s Encrypt 证书经历过几次更新升级,名称改成 certbot 了。免费的证书脚本总是不断升级改版,连带着我也要定期去学习和修改相应的续期设置,提高了我的学习成本和时间占用,麻烦。

再比如我的这个博客,除了www之外,还有static,还有go 等二级域名,我希望能有一个泛域名证书,使得主站和二级域名站都能共用。当然,以前的 Let’s Encrypt 免费证书也是能满足我的需求的。但是从 Let’s Encrypt 到 Certbot,以前多个域名可以一起生成证书,但现在的 Certbot 好像总是有这样那样的问题。

想到免费的不便,想到我除了主站之外子站也要用 SSL,最后,简而言之:我想直接用一个付费证书,一了百了。

于是我找到了一个国外 SSL 证书的 Reseller 买了 Comodo 的 ssl 证书:”PositiveSSL Wildcard Certificate”,三年的费用一共是一百多美金。当然如果你没有多个二级域名网站,买另外一种证书即可,会很便宜,一年几美金即可。

如果你也需要购买付费证书的话,那么可以按照本文当中的过程来购买和配置安装。


一、购买你需要的SSL证书

SSL 的厂家有很多,比如说比较知名的有 Symantec,Comodo,GeoTrust 等。如果直接从这些厂商买的话,价格会比较贵,所以一般我们会选择从 Reseller 那里买。

我是从这个网站:https://cheapsslsecurity.com/ 买的。

一般情况下,如果你只是建一个英文网站,或者建一个自己的中文博客,那么用这个 $6.95/yr 的 Positive SSL Certificate 或 $26.24/yr 的 OV SSL Certificate 就可以了。

至于我买的证书为什么价格贵,这是因为适用于 Sub-Domains 的泛域名 SSL 证书的单价就是定的高一些。估计是因为厂商觉得你有很多 sub domains,应该是大企业,因此价格就定高了。

不过没事,不到一千块,用三年,咱也可以接受,不差钱!我是用 PayPal 买的,有双币信用卡也可以。

买的时候注意看,有可能还有一些额外的优惠。以上的价格可能商家会不定期调整,只供参考。


二、收到确认邮件

购买付款成功之后,收到来自于 CheapSSLSecurity 的订单确认邮件,随后没多久又收到来自于 Comodo 的订单确认邮件。

CheapSSLSecurity 发来的邮件里有如下提示:

CheapSSLSecurity 的主页上,你可能找不到登陆的入口。直接通过这个链接登陆:https://cheapsslsecurity.com/client/

或者,你随便点击一个产品,如:https://cheapsslsecurity.com/comodo/positivessl.html

在产品页面上方会有个 My Account。填写邮箱地址和密码即可登陆。

上面的截图里说的是什么?说的是要想使用 SSL 证书,就必须先要获得一个 CA 证书。获取 CA 证书要经历几个步骤,其中一个步骤是你必须先要获取一个 CSR(证书签发请求)。


三、生成 CSR 和 Private Key

在 Xshell 中连接了 VPS 之后,执行下面命令:

cd /usr/local/nginx/ && mkdir ssl

然后执行:

cd ssl

然后执行:

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

请注意自行替换上面的 yourdomain 变成你的域名。比如 xyz_com.csr 。

在生成 CSR 文件的时候,会问你一些问题。如国家,省份,城市,公司名等等:

OK,确定之后,就已经创建完成了。

用 XFTP 打开 /usr/local/nginx/ssl ,可以看到里面有两个文件:private.key 和 xyz_com.csr

把 xyz_com.csr 文件下载到本地,用notepad++打开,选中 —–BEGIN CERTIFICATE REQUEST—– 和 —–END CERTIFICATE REQUEST—– 中间的部分,复制。

然后在 CheapSSLSecurity 后台订单处理的地方找到 Issue Certificate。

填写你的域名。(如果你申请的是泛域名 *.xyz.com 的证书,填写 *.xyz.com)

这个页面有两块重要内容:

第一、选择验证方式

为了验证域名的所有权,需要你选择验证方式。我推荐图中 1,2,3 这三种。一般情况下,看你网站现在是哪种情况可以访问。比如你现在已经启用了 https,那么可以选择第 2种 https。如果还没有启用 https,可以选择 http 的这种。或者你可以用 3 使用 DNS 验证方式,在域名解析记录那里添加一条 CNAME 的解析记录,这种方式也很简单。图中的 email 的方式不推荐。

第二、粘贴你之前复制的 CSR 代码

提交,OK。接下来完成域名所有权的验证即可。

然后就等待 CA 证书发放了。


四、收到 CA 证书及相关证书

如果一切顺利,很快大概12小时内,你会收到一封来自 Comodo 的邮件,通知你 Certificates have been issued,附件有证书文件。

下载邮件中的证书文件附件,解压缩到本地,里面有四个文件,分别是:

  • Root CA Certificate – AddTrustExternalCARoot.crt
  • Intermediate CA Certificate – COMODORSAAddTrustCA.crt
  • Intermediate CA Certificate – COMODORSADomainValidationSecureServerCA.crt
  • Your PositiveSSL Wildcard Certificate – STAR_domain_com.crt (注意你们买的如果是 6.95美金一年的Positive SSL Certificate,这里就是 domain_com.crt )

五、证书合并

把证书压缩包里的 4 个证书文件全部上传到 /usr/local/nginx/ssl 内。

执行一遍 cd 命令:

cd /usr/local/nginx/ssl

确保 Xshell 中位置当前所处于 ssl 文件夹下,[root@li~123 ssl]#

然后用下面的命令将之合并为一个证书:

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

注意请自行修改 xyz 为你的域名。如果成功后,你应该看到  /usr/local/nginx/ssl 内多了一个 ssl-bundle.crt 的文件(看不到请刷新)


六、生成 dhparam

确保当前所处于 ssl 文件夹下,[root@li~123 ssl]#

执行下面的命令:

openssl dhparam -out dhparam.cert 2048

一般就用 2048,有些人用了更高的安全测试分也会用 4096。随便。安静等待创建生成,大概需要 10 – 20 分钟。

成功后,文件夹 /usr/local/nginx/ssl 内会多出一个 dhparam.pem 文件。


七、配置 Nginx Vhost Conf  文件

修改网站的 conf 配置文件。位置:/etc/local/nginx/conf/vhost/ 下。

在 443 Server 段的具体配置如下 (注意修改 xyz.com 为你的域名):

listen 443 ssl http2;
server_name www.xyz.com xyz.com; 
root  /home/wwwroot/www.xyz.com; 
index index.html index.htm index.php default.html default.htm default.php;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

ssl_certificate /usr/local/nginx/ssl/ssl-bundle.crt;
ssl_certificate_key /usr/local/nginx/ssl/private.key; 

ssl_prefer_server_ciphers on;  
keepalive_timeout 70; 
ssl_session_timeout 1d; 
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_dhparam /usr/local/nginx/ssl/dhparam.pem;

ssl_stapling on; 
ssl_stapling_verify on;

include wordpress.conf;
#error_page 404 /404.html;
include enable-php.conf;

.......

下面的配置就不贴了,主要就是上面那段紫色字体部分。

修改完毕后,保存,上传覆盖。


八、重启 Nginx 服务

service nginx restart

九、查看证书详情

在 Chrome 或者 Firefox 浏览器中访问你的网站,点击地址栏左边的小绿锁图标。弹出点击证书(有效)

OK!搞定!

OVER!


喜欢这篇文章的朋友们,不要吝惜你们的赞哦!

 

分享到微信朋友圈

LiaoSam
LiaoSam
外贸综合症患者

14条评论

发表我的评论

取消评论

邮箱白名单说明:最近料网自动提醒邮件经常会被一些邮件服务商拦截。为了您顺利并及时地收取留言被回复的提醒邮件,请在您邮箱中把料网 liaosam.com 加入白名单域名。

已读说明
设为私密评论
添加表情

Hi,您需要填写昵称和邮箱!

您的邮箱地址不会公开,仅仅用于收取回复。建议填写QQ邮箱,不宜填写工作邮箱。
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址 (没有就留空)
呃,评论有点多呢... 料网小秘书为您玩命加载中...
  1. #6
    john

    军哥包LNMP 1.5已经添加了对通配符证书的支持。https://lnmp.org/faq/letsencrypt-wildcard-ssl.html

    而且料大的Linode 建站教程也建议使用1.5的包(含最新PHP版本)。毕竟现在AVADA 后台已经建议升级PHP7.2.

    2周前 (06-12)回复
  2. #5

    该评论为私密评论

    3周前 (05-31)回复
  3. #4

    国内下你在也好想有很多这类免费ssl?

    2个月前 (05-01)回复
  4. #3
    sara

    料大 在执行完openssl dhparam -out dhparam.cert 2048之后,只出现 dhparam.crt文件,没有你写的.pem的文件,而且我的网站conf文件的路径是/usr/local/nginx/conf/vhost 是不是有问题?打开以后也没有发现443server段的配置怎么办?

    2个月前 (04-20)回复
    • @sara openssl dhparam -out dhparam.cert 2048 这个地方应该是把cert改成pem才对

      1个月前 (05-21)回复
  5. #2
    Jim

    该评论为私密评论

    3个月前 (04-05)回复
    • LiaoSam
      Liaosam,外贸综合症患者。
      @Jim 让我想一下,可以考虑加进去。
      3个月前 (04-05)回复
      • Jim

        @Liaosam 该评论为私密评论

        3个月前 (04-05)回复
        • LiaoSam
          Liaosam,外贸综合症患者。
          @Jim 不过其实学员们对SSL证书的续期,可以完全参考这篇文章:https://www.liaosam.com/use-cron-service-and-certbot-for-renewal-of-letsencrypt-ssl-certificates.html
          也不是一定要用付费的证书的,看情况。
          3个月前 (04-05)回复
          • Jim

            @Liaosam 该评论为私密评论

            3个月前 (04-05)回复
  6. #1
    吉娃娃

    料大,以前免费的ssl证书怎么卸载呢。。。想装这个收费的是不是要把以前的卸载呢?

    3个月前 (04-04)回复
    • LiaoSam
      Liaosam,外贸综合症患者。
      @吉娃娃 免费的证书你是 LNMP 1.3 下安装的还是 LNMP 1.4 下安装的?
      如果不清楚,启动 XFTP 的时候看一下 /root 下的下载的压缩包文件名。如果是 1.3 下安装的,先购买和配置再说。
      如果想稳定地使用免费的SSL证书,那要等我有空研究看看 Certbot 的自动续期命令。如果要装付费的证书,应该不管1.3还是1.4都可以直接安装配置。
      等搞完后,修改网站的 conf 配置文件,修改指向证书和 key 以及 dhparam.pem 的路径和文件名即可。
      3个月前 (04-04)回复
      • 吉娃娃

        @Liaosam 1.3的

        3个月前 (04-04)回复
        • LiaoSam
          Liaosam,外贸综合症患者。
          @吉娃娃 可以直接上了。
          3个月前 (04-04)回复