搭建HTTPS免费的方法 发布日期:2017-03-02 23:24:44     博主推荐★

闲话不多说,来!

第一步,获取证书 ps: 免费的哦,而且不像自签名的那种证书浏览器会不认
很简单,先安装certbot命令:
yum install certbot

然后使用此命令生成证书:

certbot certonly --webroot -w /var/www/example -d example.com -d  www.example.com

注:看不懂以上?不会么?参考官方网站:https://certbot.eff.org/

这边说明下, /var/www/example 是你现在网站可以访问的根目录,在生成时它会创建一个 .well-known 文件夹去验证你是否有这个网站的权限,然后 -d 后面是证书匹配的域名,可以多个,example.com 请换成你的域名。
然后是一个引导窗口你就填个email然后确认基本上等待验证就能成功了(千万别在screen里运行,否则像我一开始一样全部是蓝屏看不到字)

生成证书后,证书在 /etc/letsencrypt/live/example.com/ 目录

server {
    listen      443 ssl http2;
    ssl         on;
    ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_dhparam         /etc/nginx/ssl/dhparam.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4';
}

以上是nginx的https相关的基本配置(其它参数不写了,自行加上,以上参数说明请见参阅内容第3个,ssl_protocols 主要用的安全协议,ssl_ciphers 是禁用的不安全的协议,这里不赘述了)

这里需要自己生成个 dhparam.pem 文件,执行如下命令即可:

mkdir /etc/nginx/ssl/
openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

这是加强 HTTPS 安全性的,如果嫌麻烦,把 ssl_dhparam 参数删掉就可以了。


因为证书是半年有效期的,所以需要定期更新

先在命令行模拟证书更新:

sudo certbot renew --dry-run

模拟更新成功的效果如下:

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/your.domain.com.conf
-------------------------------------------------------------------------------
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates below have not been saved.)

Congratulations, all renewals succeeded. The following certs have been renewed:  /etc/letsencrypt/live/your.domain.com/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates above have not been saved.)

既然模拟成功,我们就使用crontab -e的命令来启用自动任务,命令行:

sudo crontab -e

添加配置:

30 2 * * 1 /usr/bin/certbot renew  >> /var/log/le-renew.log

上面的执行时间为:每周一半夜2点30分执行renew任务。

你可以在命令行执行/usr/bin/certbot renew >> /var/log/le-renew.log 看看是否执行正常,如果一切OK,那么我们的配置到此结束!


参阅:

  1、https://certbot.eff.org/

  2、https://ksmx.me/letsencrypt-ssl-https/

  3、https://aotu.io/notes/2016/08/16/nginx-https/



博文地址:https://blog.ahamu.cn/blog/detail.html?id=99
   
推荐文章
  • 1
    sysbench
    2020/07/08
  • 2
    phper转java记录篇-spring boot
    2020/06/10
  • 3
    thinkphp5.0使用路由之后,post请求的
    2020/05/19
  • 4
    springboot单元测试aop失效
    2020/05/15
  • 5
    脑海中的JVM
    2020/05/12
  • 6
    IDEA搜索插件时显示search results
    2020/05/12
  • 7
    spring boot 配置加载源码查找
    2020/04/20
  • 8
    通过javap命令分析java汇编指令
    2020/04/16
  • 9
    IDEA小知识:查看JVM内存使用情况的步骤
    2020/04/16
  • 10
    springboot-加载自定义的properti
    2020/04/14
  • 11
    Jenkins执行shell脚本无法启动子进程解决
    2020/04/03
  • 12
    mac idea激活找专业的
    2020/04/02
  • 13
    Jenkins + DockerSwarm 实现弹
    2020/03/31
  • 14
    mac swarm学习过程
    2020/03/31
  • 15
    spring cloud
    2020/03/18
  • 16
    JAVA开发中遇到的问题记录002
    2020/03/12
  • 17
    JAVA开发中遇到的问题记录001
    2020/03/07
  • 18
    php -i查看信息
    2020/02/23
  • 19
    phpStorm中使用xdebug工具调试dock
    2019/12/09
  • 20
    讲的比较好的B+树执行原理的文章
    2019/12/09
最喜标签
NYOJ 面试 AJAX ping CentOS 灰度算法 YII2