Let's Encrypt安装教程:站点加密之旅
一直以来都觉得浏览器网址开头的那把小绿锁很别致啊,现在Let's Encrypt横空出世提供免费证书,说明https势在必行,那我也来动手给博客加把锁吧,看着就安全是吧。 Let's Encrypt 的官网(地址:https://letsencrypt.org)提供的脚本看起来更加自动化一些,但我没有亲自尝试,而是在Github上搜到了一个开源脚本acme-tiny(地址:https://github.com/diafygi/acme-tiny),用下来之后成功将博客加密完成。
根据acme-tiny提供的说明文档和我自己的实施过程列出以下几步: 克隆脚本sudo git clone https://github.com/diafygi/acme-tiny.git cd acme-tiny 创建Let's Encrypt私钥openssl genrsa 4096 > account.key 创建CSR(Certificate Signing Request,证书签名请求) 文件
将需要加密的域名加到下面的代码中,目前一张证书最多可以加密 100 个域名: openssl genrsa 4096 > domain.key openssl req -new -sha256 -key domain.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]nsubjectAltName=DNS:yoursite.com,DNS:www.yoursite.com")) > domain.csr
证明你拥有该域名acme-tiny脚本会生成验证文件并写入到你指定的目录下,然后通过 ".well-known/acme-challenge/" 这个URL来访问到验证文件. 注意: Let's Encrypt 会对你的服务器做一次http请求来进行验证,因此你需要保证80端口能够访问。 手动生成challenges目录,用来存放验证文件(路径可以根据需要修改)
配置nignx的80端口
获取签名证书sudo chmod +x acme_tiny.py python acme_tiny.py --account-key ./account.key --csr ./domain.csr --acme-dir /var/www/challenges/ > ./signed.crt 安装证书针对nginx, 你还需要将 Let's Encrypt 的中间件证书 intermediate.pem 内容附加在签名证书signed.crt之后: 证书自动更新定时任务恭喜!你的网站已经使用上了HTTPS。 但Let's Encrypt 证书有效期只有90天, 所以需要定期更新。现在只需要写一个更新脚本并把它放到定时任务中即可。 脚本内容: #!/usr/bin/sh python /path/to/acme_tiny.py --account-key /path/to/account.key --csr /path/to/domain.csr --acme-dir /var/www/challenges/ > /tmp/signed.crt || exit wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > intermediate.pem cat /tmp/signed.crt intermediate.pem > /path/to/chained.pem service nginx reload 定时任务可以设置为每个月执行一次: 0 0 1 * * /path/to/renew_cert.sh 2>> /var/log/acme_tiny.log 注:相关网站建设技巧阅读请移步到建站教程频道。 (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


