之前已经安装过一次了,然后忘记续费了,造成了网站打不开或者提示证书不正确的问题。
一路上,自己各种搜索发现很多博主的文章都有纰漏。我建议各位不要用免费证书,免费没有什么好东西,还不够时间折腾的呢。
第一,namecheap是不允许提前续费SSL证书的,第二,证书续费也是要重新提交CSR文件(CSR顾名思义就是Certificate Signing Request,证书注册提交文件)。
我用的是LNMP环境,web解析服务器是用的Nginx,直接用putty连上去,然后用命令:
openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
然后会提示你输入一堆信息,
Country Name (2 letter code) [XX]:LA
State or Province Name (full name) []:LA
Locality Name (eg, city) [Default City]:LA
Organization Name (eg, company) [Default Company Ltd]:LA
Organizational Unit Name (eg, section) []:LA
Common Name (eg, your name or your server's hostname) []:*.xxx.org
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
生成了csr文件,可以用cat命令或者FTP复制出来到本地,用notepad++打开复制,然后放入namecheap的网页中。
复制如下图中的选中部分:
然后复制到namecheap
然后需要验证域名的所有权,有3种方式,一种是http-base,也就是上传某个文件到你的根目录,还有是dns-record,DNS记录,添加cname记录,我用的就是这个,还有一种就是域名所有邮箱,收邮件,由于我保护隐私,邮件均不可到达。
我用的是DNSpod的解析服务,CNAME记录添加没一会儿就验证成功了,然后CSR文件中的邮件也收到了证书包。
下载证书包,解压,只要里面的crt文件即可,其他都不要。
crt的文件名格式应该是www_xxx_com.crt的,把该文件上传到/usr/local/nginx/conf/,其实你放哪里都可以,只是这个conf配置文件是我用伪静态rewrite规则用的目录,然后顺便也把之前用openssl命令生产的xxx.com.key也放入这个目录。
在当前目录下的vhost的子目录文件夹里面,打开对应网站的conf文件。
server
{
listen 443 ssl http2;
ssl on;
ssl_certificate www_xxx_org.crt;
ssl_certificate_key www_xxx_org.key;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/www.xxx.org;
include xxx.conf;
#error_page 404 /404.html;
server {
listen 80;
return 301 https://www.xxx.org$request_uri;
}
然后输入lnmp restart就OK了,可爱的小锁又出来了。
领取专属 10元无门槛券
私享最新 技术干货