标签 Web 下的文章

利用 Let’s Encrypt 的 ACME 协议在服务器上申请、管理 SSL 证书
  1. 下载安装

    curl  https://get.acme.sh | sh
  2. 验证

    • http (需要在网站根目录下放置一个文件, 来验证你的域名所有权, 完成验证)

      acme.sh --issue -d mydomain.com -d www.mydomain.com --webroot /home/wwwroot/mydomain.com/
    • apache

      acme.sh --issue -d mydomain.com --apache
    • nginx

      acme.sh --issue -d mydomain.com --nginx
    • 无服务器,临时监听80端口,生成证书

      acme.sh --issue -d mydomain.com --standalone
    • DNS(域名上添加txt解析记录, 验证域名所有权)

      acme.sh --issue --dns -d mydomain.com
      acme.sh 目前支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商提供的 api 自动添加 txt 记录完成验证
      export DP_Id="1234"
      export DP_Key="sADDsdasdgdsf"
      acme.sh --issue --dns dns_dp -d mydomain.com -d www.mydomain.com
  3. 安装证书

    默认生成的证书都放在安装目录下: ~/.acme.sh/
    acme.sh --installcert -d mydomain.com \
    --key-file /etc/nginx/ssl/mydomain.key \
    --fullchain-file /etc/nginx/ssl/mydonain.cer \
    --reloadcmd "service nginx force-reload"
  4. 更新acme.sh

    #手动升级
    acme.sh --upgrade
    #自动升级
    acme.sh --upgrade --auto-upgrade
    #关闭自动升级
    acme.sh --upgrade --auto-upgrade 0

HTTP Strict Transport Security(HSTS)是一种安全机制,可以帮助保护网站免受SSL/TLS剥离攻击和会话劫持等威胁。它强制客户端使用HTTPS与服务器建立安全连接,从而提高网站的安全性和数据保护级别。HSTS只能与HTTPS一起使用,因此在启用HSTS之前,确保网站已经使用有效的SSL/TLS证书启用了HTTPS。

1.编辑Nginx配置文件nginx.conf

2.在http块内添加以下行:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";

添加一个名为 Strict-Transport-Security 的HTTP响应头,并设置了HSTS的相关选项。

  • max-age:指定HSTS策略的持续时间(浏览器缓存),以秒为单位。在此示例中,设置为31536000秒,相当于一年。
  • includeSubDomains:指定是否包含子域名。通过设置此选项为true,HSTS策略将应用于所有子域名。不包含可以将includeSubDomains选项删除或设置为false
  • preload:允许浏览器将自动预加载配置,以便所有浏览器都将始终使用HTTPS与网站建立连接。

    预加载可能会使不支持HTTPS的网站完全不可访问

3.重新加载Nginx以使更改生效

systemctl reload nginx

4.验证HSTS设置

在 "Headers" 或 "Response Headers" 部分查找 Strict-Transport-Security 头,若其值与您在配置文件中设置的值相匹配,则表示HSTS已成功启用。

您是第 68207 位访客