网站首页 > 精选教程 正文
Let’s Encrypt简介
Let’s Encrypt是EFF、Mozilla、Cisco、Akamai、IdenTrust与密西根大学研究人员共同创立的组织,这是一个免费的凭证中心(Certification Authority,CA),目的在于推动全球所有的网站都使用HTTPS加密传输,并由非营利的网际网路安全研究组织Internet Security Research Group(ISRG)负责营运。
对于开发者来说,部署HTTPS是一个双赢的选择,用户可以借此获得更加安全的使用体验,而站点也能够抵御恶意软件的注入或广告追踪。Let’s Encrypt已于2015年12月3日进入公测(Public Beta),所有网站都可以免费获取Let’s Encrypt的证书。
据说Google优先收录带HTTPS加密的网站。
Certbot 简介
Certbot 是Let’s Encrypt官方推荐的获取证书的客户端,可以帮我们获取免费的Let’s Encrypt 证书。Certbot 是支持所有 Unix 内核的操作系统的。Certbot 的官方网站是 https://certbot.eff.org/
获取Let’s Encrypt证书
- 项目GitHub地址: https://github.com/certbot/certbot
- 官方教程:https://certbot.eff.org/docs/using.html
安装certbot
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto
./certbot-auto --help
说明:
certbot-auto 和 certbot 本质上是完全一样的;不同之处在于运行 certbot-auto 会自动安装它自己所需要的一些依赖,并且自动更新客户端工具。因此在你使用 certbot-auto 情况下,只需运行在当前目录执行即可
certbot的两种工作方式
certbot (实际上是 certbot-auto ) 有两种方式生成证书:
- standalone 方式: certbot 会自己运行一个 web server 来进行验证。如果我们自己的服务器上已经有 web server 正在运行 (比如 Nginx 或 Apache ),用 standalone 方式的话需要先关掉它,以免冲突。
- webroot 方式: certbot 会利用既有的 web server,在其 web root目录下创建隐藏文件, Let’s Encrypt 服务端会通过域名来访问这些隐藏文件,以确认你的确拥有对应域名的控制权。
standalone 方式:
service nginx stop
./certbot-auto certonly --standalone --agree-tos -v -t --email xxx@mail.com -d test.com -d www.test.com
--email:自己的邮箱
-d:域名,可以多个
如果申请成功,证书文件放在了/etc/letsencrypt/live下,获取一次有效期为90天
webroot 方式:
./certbot-auto certonly --webroot --agree-tos -v -t --email xxx@mail.com -w /home/wwwroot/test -d test.com -d www.test.com
-w:网站目录
配置nginx,添加https
server{ listen 443 ssl; server_name test.com www.test.com; index index.html index.htm index.php; root /home/wwwroot/test; ssl_certificate /etc/letsencrypt/live/www.test.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.test.com/privkey.pem; }
http请求跳转到https
server { listen 80; server_name test.com www.test.com; return 301 https://$server_name$request_uri; }
如果用的是standalone方式别忘了重启nginx
service nginx start
自动续签
由于证书有效期是90天,所以我们可以用定时程序去续签
15 2 * */2 * certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"
- –pre-hook 这个参数表示执行更新操作之前要做的事情,因为我有 --standalone 模式的证书,所以需要 停止 nginx 服务,解除端口占用。
- –post-hook 这个参数表示执行更新操作完成后要做的事情,这里就恢复 nginx 服务的启用
nginx部署HSTS
HTTP严格传输安全(HTTP Strict transport security,HSTS),配置浏览器对整个域名空间使用HTTPS来加密,它具备以下优点:
- HSTS可以禁止浏览器使用无效证书(浏览器的默认策略是让用户决定是否放行,而用户往往因为不能区分无效是因为配置问题还是攻击而选择继续访问从而导致遭受网络攻击)
- HSTS对以下情况可以仍然保持HTTPS通信:
- 用户保存了原始网站的书签
- 不安全的Cookie
- HTTPS 剥离攻击
- 网站内容混布,但需配合CSP(内容安全策略)
nginx部署HSTS
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
nginx https server完整代码:
server { listen xxxx:443 ssl; server_name www.test.com; add_header Strict-Transport-Security "max-age=31536000;includeSubdomains;preload"; …. }
猜你喜欢
- 2024-10-25 Web 加速,协议先行! html加速器
- 2024-10-25 分享一个网站永久免费HTTPS访问的方法
- 2024-10-25 服务器开发程序员必须搞清HTTPS通讯之证书
- 2024-10-25 20分钟助你拿下HTTP和HTTPS,巩固你的HTTP知识体系
- 2024-10-25 让我们在Ubuntu 20.04上加密来保护Nginx
- 2024-10-25 小心 Nginx 的 add_header 指令 nginx $remote_addr
- 2024-10-25 深入剖解HSTS,启动HTTPS的强制机制
- 2024-10-25 什么是HSTS?HSTS主要作用是什么? hss功能
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)