个人站点配置成HTTPS

前言

HTTPS的安全性毋庸置疑,在Docker Compose 部署WordPress + 宿主机 Nginx 实现 HTTPS 反向代理中讲过我的个人站点是在宿主主机里面实现的HTTPS。本文主要讲怎么去配置HTTPS,当然前提是已经安装好了Nginx,如果对NGINX安装不了解的,可以参考Nginx相关

推荐免费的Let’s Encrypt证书

1.何为Let’s Encrypt证书

Let’s Encrypt是由互联网安全研究小组(ISRG)运营的非营利性证书颁发机构,免费提供传输层安全性协议(TLS)加密的X.509证书。它是世界上最大的证书颁发机构,超过3亿个网站使用其服务,其目标是确保所有网站的安全并使用HTTPS。提供该服务的互联网安全研究小组(ISRG)是一个公益组织。

该证书最大的优点是:

  • 自动化配置
  • 自动化续签

2.Let’s Encrypt证书配置

1.安装 certbot 和 nginx 插件
sudo apt update
sudo apt install certbot python3-certbot-nginx
2.自动申请证书并配置 nginx
sudo certbot --nginx

重点这个命令会自动读取你的Nginx配置的server name,

3.HTTPS 自动续期(Let’s Encrypt)
sudo certbot renew --dry-run

执行完见到如下图,证明自动续签机制已经成功,我的证书是双域名

4.完整NGINX配置

从下面我的NGINX配置中可以看出,证书文件目录、证书私钥目录都是certbot给我自动生成的,我的证书配置了2个域名

server {
      #SSL 默认访问端口号为 443
      listen 443 ssl; 
      #绑定证书的域名
      server_name binarybard.cn;
      #证书文件的相对路径或绝对路径
      ssl_certificate /etc/letsencrypt/live/binarybard.cn/fullchain.pem; # managed by Certbot 
      #请填写私钥文件的相对路径或绝对路径
      ssl_certificate_key /etc/letsencrypt/live/binarybard.cn/privkey.pem; # managed by Certbot 
      ssl_session_timeout 5m;
      #协议版本
      ssl_protocols TLSv1.2 TLSv1.3; 
      #加密套件,写法遵循 openssl 标准。
      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
      ssl_prefer_server_ciphers on;

      root /var/www/html/wordpress;
      # Add index.php to the list if you are using PHP
      index index.php index.html index.htm index.nginx-debian.html;
  
  # 转发请求给到docker 中的nginx
  location / {
                proxy_pass http://172.19.0.5:80; 
                # 以下是关键头部,必须有
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto https;  # 告诉 WordPress 是 HTTPS
       }

}

server {
        #listen 80 default_server;
        #listen [::]:80 default_server;
        #SSL 默认访问端口号为 443
        listen 443 ssl;
        #绑定证书的域名
        server_name xxx.binarybard.cn;
        #证书文件的相对路径或绝对路径
        ssl_certificate /etc/letsencrypt/live/binarybard.cn/fullchain.pem; # managed by Certbot
        #请填写私钥文件的相对路径或绝对路径
        ssl_certificate_key /etc/letsencrypt/live/binarybard.cn/privkey.pem; # managed by Certbot
        ssl_session_timeout 5m;
        #协议版本
        ssl_protocols TLSv1.2 TLSv1.3;
        #加密套件,写法遵循 openssl 标准。
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;

    location / {
                proxy_pass http://127.0.0.1:3000/;
                proxy_http_version 1.1;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
       }

}
server {
    listen 80;
    server_name binarybard.cn xxx.binarybard.cn;
    # 所有 http 请求统一重定向到 https
    return 301 https://$host$request_uri;
}
测试HTTPS是否正常工作

1.浏览器访问:https://yourdomain.com

2.使用 SSL 检测工具SSL Labs 检测可以检查的网站的整体安全性

下面的截图是我的网站检测结果

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇