域名从http转https

2021-03-06 23:13 jianzhan

应用Https数据加密最先就必须申请办理本人blog资格证书,收费标准的资格证书授予组织中国和海外都是有许多。本人blog强烈推荐应用如今较为时兴的Let's Encrypt。申请办理全过程较为简易,应用官方网全自动化脚本制作:


./certbot-auto certonly --standalone --email loryxxx - -d


安裝全过程,必须手动式确定是不是安裝,键入Y确定。此外还必须接纳官方网协议书,键入A回车键就可以。


根据crontab制订一个方案每日任务,每两个月(即1、3、5、7、9、十一月十五日零晨2点0分)升级一次。


0 2 15 */2 * root /root/certbot/certbot-auto renew --standalone --pre-hook "service nginx stop" --post-hook "service nginx start" --force-renewal


或是应用./certbot-auto renew -v指令还可以(注:要先关掉nginx服务再运作,不然会出错)。


2、转化成HTTP Public Key Pinning(en-US/docs/Web/HTTP/Public_Key_Pinning)


# cd /etc/letsencrypt//
# openssl rsa -in privkey.pem -outform der -pubout | openssl dgst -sha256 -binary | openssl enc -base64
writing RSA key
cxVnzws62MPkX5nUJPKs5jAGAhnxeqANv0Hx7Vo=
# openssl s_client -servername  -connect :443 | openssl x509 -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN =&
verify return:1
writing RSA key
cxVnzws62MPkX5nUJPKs5jAGAhnxeqANv0Hx7Vo=
# openssl x509 -in chain.pem -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
writing RSA key
YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=
转化成预留资格证书指纹识别(官方网预留):
# curl certs/lets-encrypt-x4-cross-signed.pem | openssl x509 -pubkey | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | base64
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
100 1647 100 1647 0 0 1968 0 --:--:-- --:--:-- --:--:-- 1967
sRHdihwgkaib1P1gxX8HFszlD+7/gTfNvuAybgLPNis=

 listen 443 ssl http2;  server_name &;  root /usr//; & index.php index.htm;  if ($scheme = http) {  return 301 etc/letsencrypt//fullchain.pem;  ssl_certificate_key /etc/letsencrypt//privkey.pem;  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";  ssl_prefer_server_ciphers on;  ssl_session_cache shared:SSL:10M;  ssl_session_timeout 10M;  ssl_session_tickets off;  ssl_stapling on;  ssl_stapling_verify on;  ssl_trusted_certificate /etc/letsencrypt//chain.pem;  ssl_dhparam /etc/ssl/certs/dhparam.pem;  server_tokens off;  resolver 8.8.4.4 8.8.8.8 valid=300s;  resolver_timeout 10s;  fastcgi_hide_header X-Powered-By;  add_header Strict-Transport-Security "max-age=; includeSubDomains; preload";  add_header Public-Key-Pins 'pin-sha256="cxVnzws62MPkX5nUJPKs5jAGAhnxeqANv0Hx7Vo="; pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg="; pin-sha256="sRHdihwgkaib1P1gxX8HFszlD+7/gTfNvuAybgLPNis="; max-age=2592000; includeSubDomains';  add_header X-Frame-Options DENY;  add_header X-Content-Type-Options nosniff;