起因

 其实最初设想搭好网站自己用用就懒得部署SSL证书,但是之前用宝塔一键部署习惯了网站是https://开头,同时又能防止被运营商劫持,所以就想干脆想办法申请个证书自己手动部署一下。
 网上申请SSL证书的网站挺多的,这里就先记录几个免费的:


点击查看

1、Let's Encrypt
提供免费SSL证书周期为90天,我们需要设置自动或者提前续约才可以继续使用

https://letsencrypt.org

2、StartSS
提供3年免费SSL服务,不过StartSSL在火狐浏览器中可能会不信任,不过可以尝试下,说不定就兼容信任了。

https://www.startssl.com

3、阿里云Symantec DV SSL
免费DV SSL证书,一次申请每个域名1年,每个阿里账户可以签发20张免费证书。单个域名、二级域名,单独申请是分开算的。

https://www.aliyun.com/product/cas

4、西部数码DV SSL证书
提供免费1年DV SSL证书

http://www.west.cn/web/ssl/default/index

5、腾讯云DV SSL证书
提供免费1年DV SSL证书

https://console.qcloud.com/ssl

6、景安DV SSL证书
提供免费1年DV SSL证书,一个账号可以申请3个。

https://www.zzidc.com/ssl/showfree


问题

因为我是申请的免费域名加上内网穿透的原因,在申请证书验证环节的时候用DNS的方式一直出问题,最后换成文件校验一下就好了,所以我建议有同样情况的就直接用文件验证的方式比较直接点。
 证书虽然申请好了,可是部署的时候又出现了一点小麻烦因为官方文档给的指南实际用起来会有点问题。

模板(需修改)
server {
 listen 443;
 server_name localhost;
 ssl on;
 root html;
 index index.html index.htm;
 ssl_certificate   cert/a.pem;
 ssl_certificate_key  cert/a.key;
 ssl_session_timeout 5m;
 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_prefer_server_ciphers on;
 location / {
     root html;
     index index.html index.htm;
 }
}

 改的其实还不少,但我最开始也挺茫然的,折腾了一阵之后发现,问题多多,直到我看了这篇帖子过后才有点头绪,因为这个楼主也是部署自己的博客,但是我根据他的改了之后NGINX却没法启动,会出现错误提示:

nginx: [warn] the ""ssl"" directive is deprecated, use the ""listen ... ssl"" directive instead

 Emmm.....百度了一下原来是NGINX1.15之后不需要启用

ssl on;

 出处【1】|【2】

 然后我根据自己的实际情况按下边的修改就好了

修改的版本
server {
    listen 901 ssl;#https端口号自已自定义,但是要记得内网穿透那里对应好
    server_name localhost;
    root  /opt/wwwroot/Typecho/;#网站目录选对
    index index.html index.htm index.php tz.php;
    ssl_certificate   /opt/etc/nginx/cert/1967758_ty.ccccz.ml.pem;#pem路径,可自定义
    ssl_certificate_key  /opt/etc/nginx/cert/1967758_ty.ccccz.ml.key;#key路径,同样可以自定义
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
    root  /opt/wwwroot/Typecho/;
    include       /opt/etc/nginx/conf/php-fpm.conf;
    include     /opt/etc/nginx/conf/typecho.conf;
    #otherconf
    }
}
server { 
   listen 90; #强制http转https
    server_name ty.ccccz.ml; #部署证书域名
    rewrite ^(.*)$ https://$host$1 permanent;
}

完成

 最后frp配置好

 就大功告成了!

补充一点

部署完证书重启NGINX之前记得把Typecho后台的站点地址改成新的https://地址以免页面排版出现混乱~~~

最后修改:2019 年 04 月 28 日 02 : 24 AM
如果觉得我的文章对你有用,请随意赞赏