如果我们仅仅是个人网站使用SSL证书,其实目前网上有很多商家提供免费SSL证书。我们可以看到在老部落中有分享过"我们可以使用的7个免费SSL证书提供商/平台"文章,我们可以挑选适合自己的SSL证书使用。其中可能使用较多的应该是Let's Encrypt,毕竟在众多WEB应用环境中已经内置集成,我们可以快速安装。
不过,如果我们是商业项目或者是企业网站项目,一般我们都给客户使用付费SSL证书,虽然在功能上没有特别多的差异,但是从感知上还是有一些瑕疵的。毕竟作为商业项目,使用免费SSL证书感觉有点不是特别专业,而且如今付费SSL证书成本也不是很高,一年也就在50-60元左右。
在公司的企业网站客户中使用的付费SSL证书,我一般建议使用来自国外的Namecheap商家提供的PositiveSSL证书,大约年需要60元左右,成本还是可以接受的。这不,在这篇文章中,笔者将会详细记录我是如何在Namecheap购买SSL证书,以及如何部署到网站项目中的过程。
第一、Namecheap SSL证书购买
我们可以看到Namecheap商家有多个SSL证书类别可以选择,这里我们直接选择最便宜的年付是8.88美元,两年是年7.88美元,直接一次买两年最划算。直接添加购物车付款。只能支持PAYPAL和信用卡,不支持支付宝。
第二、激活绑定SSL证书
我们在上面已经购买一个SSL证书,但是还没有绑定属于哪个域名使用,这里我们就要做这件事情。
这里我们直接点击ACTIVE准备激活SSL。
这里我们需要先获得域名的CSR才可以继续,那我们到哪里获取呢?
在线获取工具:https://www.chinassl.net/ssltools/generator-csr.html
一个CSR需要用上上面继续,有一个KEY文件需要保留,后续在安装SSL证书的时候用到。
然后选择我们需要用到的WEB环境。
选择域名所有权验证方式,这里我直接用DNS验证。然后提交之后,我们再回到NC官方界面选择自己的验证方式提交修改域名CNAME验证。
根据自己设定的验证方式进行设置之后,等待会自动验证域名所有权之后会将证书下放到我们邮箱中。
第三、部署SSL证书到网站中
我们解压到SSL证书文件中,看到有2个文件。会看到www_laobuluo_com.ca-bundle和www_laobuluo_com.crt两个文件,我们需要合并到一个.crt里,将复制.ca-bundle里的所有内容脚本到.crt文件中,这样组合成一个.crt文件。
在加上我们上面申请到的KEY文件,这么两个文件之后我们就可以部署到网站中。
/usr/local/nginx/conf/vhost/
找到我们需要部署网站的配置文件,然后添加443端口,记住如果我们有安全组的也需要放行443端口,有防火墙的也需要添加443端口放行。
listen 443 ssl http2;
ssl_certificate /home/ssl/www.laobuluo.com.crt;
ssl_certificate_key /home/ssl/www.laobuluo.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_timeout 10m;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_buffer_size 1400;
add_header Strict-Transport-Security max-age=15768000;
ssl_stapling on;
ssl_stapling_verify on;
配置文件中添加上面的脚本,且需要对域名和SSL路径修改。最后我们重启NGINX才可以生效。
第四、小结
1、如果需要付费SSL证书,个人比较倾向选择NAMECHEAP商家的,价格比较便宜且申请过程简单。
2、相对而言,普通个人网站可以用免费证书,企业或者商业网站,建议还是用付费证书比较好。