博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Let's Encrypt
阅读量:4132 次
发布时间:2019-05-25

本文共 2807 字,大约阅读时间需要 9 分钟。

Let's Encrypt

2017年04月29日

趁今天放假给博客换上了 https 。

HTTPS 免费证书我选择了 Let's Encrypt ,不但免费,还靠谱、方便部署。

Let's Encrypt 推荐使用  进行部署:

安装 certbot

$ sudo add-apt-repository ppa:certbot/certbot$ sudo apt-get update$ sudo apt-get install certbot

nginx 修改

要部署的域名修改下配置方便 certbot 自动生成证书:

location / {      root /usr/share/nginx/html;}

然后在要部署的域名的 nginx 的 root 目录里创建一个可写的 .well-known 目录:

mkdir -p /usr/share/nginx/html/.well-known

certbot 配置

编写一个配置文件:

# vim /etc/letsencrypt/configs/example.com.confdomains = example.com  rsa-key-size = 2048  email = webadmin@example.com  text = True  authenticator = webroot  webroot-path = /usr/share/nginx/html

请根据情况修改自己的域名。

生成证书

certbot -c /etc/letsencrypt/configs/example.com.conf certonly

没问题的话,certbot 会帮我们创建好所需要的证书:

# tree /etc/letsencrypt/live/example.com//etc/letsencrypt/live/example.com/├── cert.pem -> ../../archive/example.com/cert1.pem├── chain.pem -> ../../archive/example.com/chain1.pem├── fullchain.pem -> ../../archive/example.com/fullchain1.pem├── privkey.pem -> ../../archive/example.com/privkey1.pem└── README0 directories, 5 files

还要手动生成一个 Diffie-Hellman 证书:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

nginx 配置

server {      listen 80;    return 301 https://$host$request_uri;}server {      listen 443 ssl;    server_name example.com;    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    ssl_prefer_server_ciphers on;    ssl_dhparam /etc/ssl/certs/dhparam.pem;    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';    ssl_session_timeout 1d;    ssl_session_cache shared:SSL:50m;    ssl_stapling on;    ssl_stapling_verify on;    add_header Strict-Transport-Security max-age=15768000;    location / {        root /usr/share/nginx/html;    }}

重启或者 reload nginx ,你就可以看到浏览器上自己的域名的旁边有个绿色的锁啦!

renew

Let's Encrypt 的证书有效期是 90 天,所以我们需要自动更新:

certbot renew

每月弄个定时任务就 OK 了 (如果没到期会自动跳过的) 。

网站资源引用问题

需要将

href="http://cdn.bootcss.com/highlight.js/8.0/styles/github.min.css"

这种类型的资源引用改为

href="//cdn.bootcss.com/highlight.js/8.0/styles/github.min.css"

否则会被 block 。感谢小罗的提醒。

转载地址:http://debvi.baihongyu.com/

你可能感兴趣的文章
127个超级实用的JavaScript 代码片段,你千万要收藏好(下)
查看>>
【web素材】03-24款后台管理系统网站模板
查看>>
Flex 布局教程:语法篇
查看>>
年薪50万+的90后程序员都经历了什么?
查看>>
2019年哪些外快收入可达到2万以上?
查看>>
【JavaScript 教程】标准库—Date 对象
查看>>
前阿里手淘前端负责人@winter:前端人如何保持竞争力?
查看>>
【JavaScript 教程】面向对象编程——实例对象与 new 命令
查看>>
我在网易做了6年前端,想给求职者4条建议
查看>>
SQL1015N The database is in an inconsistent state. SQLSTATE=55025
查看>>
RQP-DEF-0177
查看>>
Linux查看mac地址
查看>>
Linux修改ip
查看>>
MySQL字段类型的选择与MySQL的查询效率
查看>>
Java的Properties配置文件用法【续】
查看>>
JAVA操作properties文件的代码实例
查看>>
IPS开发手记【一】
查看>>
Java通用字符处理类
查看>>
文件上传时生成“日期+随机数”式文件名前缀的Java代码
查看>>
Java代码检查工具Checkstyle常见输出结果
查看>>