Nginx下配置Namecheap Comodo SSL证书教程

博客上使用的Let’s Encrypt的SSL证书,不过前段时间撸了199个NameCheap的个人DV证书,也不清楚什么时候会过期,不过还是打算使用两个来玩玩,不然就彻底浪费了。

comodo-ssl

虽然个人一直都觉得收费的东西比免费的要好。不过呢Let’s Encrypt的免费SSL真心挺不错的,很多的大佬博客都使用其的SSL,当然也不是否定Namecheap的Comodo SSL不好。在诸多的活动或者域名购买时候都有很多机会获取到Namecheap的Comodo SSL,那么还是把它充分利用起来吧!

0x00 生成CSR和KEY

之前的文章中介绍过一些在线网站来生成CSR和KEY,当然既然都使用了Linux的VPS,那么不妨使用openssl来生成CSR和KEY。

#生成CSR与KEY

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

按照提示的内容进行填写,基本上可以乱写,不过在Common Name一栏中,必须填写你的域名,www和不带www的是不同的哦!

openssl-step1(点击放大)

之后可以看见生成出来一个ssl.csr和ssl.key文件。复制ssl.csr的内容去申请,Namecheap Comodo SSL。

#打印ssl.csr

cat ssl.csr

openssl-step2(点击放大)

那么复制好ssl.csr就可以准备去申请Namecheap的Comodo SSL证书了。

0x01 获取Namecheap Comodo SSL

1.进入Namecheap的SSL产品出,激活Comodo SSL,首先复制之前生成的CSR内容进去。

namecheap-input-csr(点击放大)

域名可以自动被识别出来。

2.选择你的服务器类型,这类选择Nginx。

namecheap-ssl-nginx(点击放大)

3.选择验证域名所有权的方式,这类我选择通过DNS方法来验证。

namecheap-ssl-dcv-method(点击放大)

不过个人还是推荐是HTTP的方式验证,上传一个文件到指定路径即可,这种比较快。

4.填写接收Comodo SSL证书的邮箱。

namecheap-ssl-file-receive-email(点击放大)

5.确认你的验证方式与接收SSL证书的邮箱。

namecheap-ssl-request-review-submit(点击放大)

6.稍等一段时间,Namecheap会将Comodo SSL证书的文件发送到你的邮箱里。将其下载下来即可。

0x02 合并证书与激活证书

1.将Namecheap发送给你的SSL证书文件下载到自己电脑上,或者VPS上。

namecheap-ssl-file(点击放大)

可以发现SSL证书主要为2个文件,一个为xxx.ca-bundle,另一个为xxx.crt。

2.此时我们需要将xxx.ca-bundle复制到xxx.crt文件中,将其合并为一个crt文件。个人推荐在Linux上使用cat与标准输出来合并。如果你还是喜欢直接复制粘贴的话,那么将xxx.ca-bundle复制到xxx.crt合并为一个crt文件保存即可。

#合并ca-bundle与crt

cat xxx.crt xxx.ca-bundle > ssl.crt

3.合并完毕后,一定要打开或者打印检查,是否有——Begin——与——End——重贴在一行了(简略的表达先我要表达的意思了),如果没有问题,将xxx.crt文件传到/root/目录中(任意目录,此处以为/root/为例)。

4.将第一步生成的ssl.key也复制到/root/目录中。

5.解密私钥与权限设置

openssl rsa -in ssl.key -out /root/ssl.key

chmod 600 /root/ssl.key

到此为止,证书的合并与激活基本差不多了,只需要在对Nginx的配置进行修改即可。

0x03 Nginx配置

1.修改Nginx配置。

vim /usr/local/nginx/conf/vhost/xxx.config

2.将配置文件修改为:

server
{
listen 80;
listen 443 ssl;
#listen [::]:80;
ssl on;
ssl_certificate /root/ssl.crt;
ssl_certificate_key /root/ssl.key;
server_name www.xzymoe.tk xzymoe.tech;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/www.xzymoe.tech;

主要就是加上红色部分,这里只复制了局部代码,剩下的代码因为没有修改,因此省略。如果ssl.key与ssl.crt并未上传到/root/目录的,此处应修改相应路径。

3.如果要强制HTTPS,那么将配置文件修改为

server
{
#listen 80;
listen 443 ssl;
#listen [::]:80;
ssl on;
ssl_certificate /root/ssl.crt;
ssl_certificate_key /root/ssl.key;
server_name www.xzymoe.tk xzymoe.tech;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/www.xzymoe.tech;
……此处省略……}
server
{
listen 80;
server_name www.xzymoe.tech xzymoe.tech;
return 301 https://www.xzymoe.tech$request_uri;
}

注意第三行前面加了个#注释了改行,当然你也可以直接删除该行。

4.最后就是测试一下的网站是否已经启开了SSL加密,不出意外的话,那么肯定已经用上了Namecheap的Comodo SSL。

namecheap-ssl-301(点击放大)

0x04 总结

小绿锁显示出来,总是让人爽爽哒。当然我开始使用LNMP下的lnmp ssl add来进行自己的SSL配置Namecheap的Comodo SSL,我实验了2次都是抱错了,我查询了下是因为Begin与End被合并在了同一行,但是我检查后并没有这个问题,我加了空行后再次实验,还是一直的抱相同的错误,我也没有研究是什么问题了,所以自己手动安装吧!!其实也挺方便的~

发表评论