使用Let’s Encrypt(certbot)为你的网站生成免费的 SSL 证书
文章目录
— 2024.10.28 更新
推荐使用 certbot
用法:
|
|
然后在域名解析添加一个 txt 记录即可!
— 2018.08.15更新
推荐使用acme.sh,教材参考:申请Let’s Encrypt通配符HTTPS证书
简单易用,且没有cerbot的各种安装问题,连证书的自动更新都不必操心!
关于HTTPS
引维基百科的说法
超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS)是一种网络安全传输协议。在计算机网络上,HTTPS经由超文本传输协议进行通信,但利用SSL/TLS来对数据包进行加密。HTTPS开发的主要目的,是提供对网络服务器的身份认证,保护交换数据的隐私与完整性
HTTPS的主要思想是在不安全的网络上创建一安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信任时,对窃听和中间人攻击提供合理的防护。
关于TLS/SSL
依然引用维基百科
传输层安全协议(英语:Transport Layer Security,缩写:TLS),及其前身安全套接层(Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信,提供安全及数据完整性保障
相关算法
TLS利用密钥算法在互联网上提供端点身份认证与通讯保密,其基础是公钥基础设施。
TLS包含三个基本阶段:
- 对等协商支持的密钥算法
- 基于非对称密钥的信息传输加密和身份认证、基于PKI证书的身份认证
- 基于对称密钥的数据传输保密
国内现状
由于运营商的劫持,国内公司不堪其扰,纷纷将全站采用https
安装配置
- wget https://dl.eff.org/certbot-auto
- chmod a+x ./certbot-auto
- ./certbot-auto –help all
- ./certbot-auto certonly –standalone –email wwj@example.com -d www.just4fun.site (可以使用二级域名)
如果最后一条命令报错:setuptools pkg_resources pip wheel failed with error code 2
解决方案是:
|
|
需要注意的是,验证的时候保证80/443端口对外开放,且不被占用,如果这些端口实现被nginx占用,先停掉nginx
完成后查看生成的证书:
- sudo tree /etc/letsencrypt/live/
证书续签
证书的失效期是3个月,
续签的命令为:
- ./certbot-auto renew 或
- ./certbot-auto renew –standalone –pre-hook “service nginx stop” –post-hook “service nginx start”
可以用cron添加一个定时任务,自动续签。
将证书用于nginx
|
|
当然我们可以将任意端口用于https,不过证书无法移植到其他服务器(可能是我还不熟悉)
访问https://www.just4fun.site:18443,一切正常(我在青云的路由器上将8443端口映射为18443)
参考
- 超文本传输安全协议
- 传输层安全协议
- SSL/TLS协议运行机制的概述
- certbot
- 使用 Let’s Encrypt 生成免费的 SSL 证书
- Certbot:自动部署 Let’s Encrypt 证书
- Let’s Encrypt 终于支持通配符证书了
- –no-bootstrap 不检测系统依赖 –verbose pip详细输出
- 申请Let’s Encrypt通配符HTTPS证书
文章作者 种瓜
上次更新 2016-06-19