Let's Encrypt安装教程:站点加密之旅

Let's Encrypt安装教程:站点加密之旅,第1张

Let'sEncrypt安装教程:站点加密之旅

HTTPS(全称:安全套接字 层上的超文本传输协议)是一个HTTP安全通道,总体目标是安全。简单来说就是HTTP的安全版本。也就是在HTTP下面加了SSL层,HTTPS的安全性基本都是SSL,所以加密的详细内容一定是SSL。

成立于2016年4月12日的证书授权中心Let'sEncrypt,提供完全免费的网络层安全(TLS)X.509证书。按照自动化技术的全流程,目前的安全网站证书必须手动创建、加密、签名、安装和升级。

一直觉得浏览器网址开头的小绿锁很独特。现在Let'sEncrypt出来提供免费证书,说明https等不及了。那是因为我可以给博客加一把锁。看了很安全吧?

Let'sEncrypt官网(详细地址: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'sEncrypt公钥 openssl genrsa 4096 > account.key 建立CSR(CertificateSigningRequest,证书签名要求)文档

ACME协议(由Let'sEncrypt应用)必须是csr文档,用于签署证书和升级资格证书。

将必须加密的网站域名添加到以下代码中。现阶段,一个资质证书最多可以加密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

注意:由于linux版本号不同,openssl.cnf文档的部分内容可能会发生变化。

证实你有着该网站域名

acme-tiny脚本会形成一个认证文档并加载到你的特定文件目录下,然后根据URL浏览到认证文档”。知名/acme-challenge/" 。注意:Let'sEncrypt将向您的web服务器发出一个http请求以进行身份验证,因此您需要确保可以浏览端口80。

手动形成挑战文件目录来存储认证文件(可以根据需要改变方式)。

mkdir-p/var/www/challenges

使用nignx的80个端口

server { listen 80; server_name yoursite.com www.yoursite.com; return 301 https://yoursite.com$request_uri; # 留意开展301跳转到https,不然根据http仍能浏览你的网站 location /.well-known/acme-challenge/ { alias /var/www/challenges/; try_files $uri =404; } #...你的别的配备 }

注:上面跳转301,网站域名验证成功后再打开。

阿帕奇需要改变。带有301跳转的htaccess文档:

RewriteEngine On RewriteCond %{HTTPS} offRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 获得签字资格证书 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,你要在签署了signed.crt的资格证书后,再添加intermediate.pem,Let'sEncrypt的分布式数据库资格证书的内容:

wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > intermediate.pem cat signed.crt intermediate.pem > chained.pem server { listen 443; server_name yoursite.com, www.yoursite.com; ssl on; ssl_certificate /path/to/chained.pem; ssl_certificate_key /path/to/domain.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA; ssl_session_cache shared:SSL:五十米; ssl_prefer_server_ciphers on; #...你的别的配备 } 资格证书自动升级计划任务

恭喜你!HTTPS已经申请到你的网站了。但是Let'sEncrypt资格证书的有效期只有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

任务可以设置为每月执行一次: 001**/path/to/renew_cert.sh2>;>/var/log/acme_tiny.log

注:阅读相关网站基本建设方法的文章,请移至网站建设教程频道栏目。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/769689.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-02
下一篇 2022-05-02

发表评论

登录后才能评论

评论列表(0条)

保存