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端口可以浏览。
手动转换到challenges文件目录,该目录用于存储认证文件(方式可以根据需要改变)
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; #...你的别的配备 } 资格证书自动升级计划任务恭喜你!您的URL已经被应用到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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)