爽了!免費的SSL,還能自動續期!

小傅哥發表於2024-04-26

作者:小傅哥

部落格:https://bugstack.cn

沉澱、分享、成長,讓自己和他人都能有所收穫!😄

大家好,我是技術UP主小傅哥。

兄弟👬🏻,當你手裡有不少域名,每個域名又配置子域名,那麼ssl將是一筆不小的費用。當然各個雲廠商,也都有提供免費的ssl證書,但這裡有一個問題,就是基本都不提供免費的泛域名證書(免費20個單域名證書),比如 x.gaga.plusb.gaga.plus 這就要申請2個域名證書了!並且3個月就過期,一年就折騰這,都能折騰哭😭!那咋辦?

爽了!免費的SSL,還能自動續期!
**跟著小傅哥學習,教會你的都是實戰經驗!**

像我這樣做技術分享的,再把一些學習專案部署上線讓大家學習體驗,站點;https://gaga.plus 就會拆分出不少的子域名,做獨立的專案展示。那麼就非常需要一款好用的、免費的、泛域名證書,最好還能支援到期自動續期,否則有時候都容易忘記哪個域名忘記更換證書。好在後來找到了一款 https://freessl.cn/ 不過這東西很多夥伴可能不會部署,所以今天給大家分享下,如何配置和使用這塊免費的ssl。

文末還有實戰專案學習,早早的積累一些各類場景的程式設計經驗,讓自己立於不敗之地,面試也就不心慌了!

一、產品介紹

freessl.cn 一個提供免費HTTPS證書申請的網站。已實測體驗,確實挺好用。

爽了!免費的SSL,還能自動續期!

二、ssl證書

1. 泛域名證書建立

爽了!免費的SSL,還能自動續期!
  • *.xiaofuge.tech 不匹配 xiaofuge.tech 如果有根域名訪問,需要單獨再申請。

2. dcv 驗證(cname)

2.1 獲取驗證標識

爽了!免費的SSL,還能自動續期!
  • 選擇 cname 方式進行驗證。

2.2 域名驗證配置

爽了!免費的SSL,還能自動續期!
  • 進入你的域名,配置解析。選擇 CNAME 記錄型別,填寫 freessl 提供給你的記錄值進行填寫。

2.3 獲得部署命令

爽了!免費的SSL,還能自動續期!
  • 點選【配置完成,立即檢測】即可獲得到部署命令。如果驗證失敗一種是域名時間未生效,另外就是手殘黨複製錯了。
  • 這裡主要會用到 acme.sh 指令碼進行部署。下文部署會進行操作

3. 證書部署

3.1 acme.sh 安裝

acme.sh 是一個用於自動化管理和獲取SSL/TLS證書的UNIX shell指令碼。它使用ACME協議(自動證書管理環境)與證書頒發機構(如Let's Encrypt)進行互動,以便為網站自動頒發、續簽和安裝SSL/TLS證書。

文件https://blog.freessl.cn/acme-quick-start/

[root@lavm-aqhgp9nber ~]# curl https://get.acme.sh | sh -s email=xiaofuge@qq.com  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1032    0  1032    0     0   1337      0 --:--:-- --:--:-- --:--:--  1336
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  218k  100  218k    0     0   1338      0  0:02:46  0:02:46 --:--:--  8442
[Wed Apr 24 22:52:39 CST 2024] Installing from online archive.
[Wed Apr 24 22:52:39 CST 2024] Downloading https://github.com/acmesh-official/acme.sh/archive/master.tar.gz
[Wed Apr 24 22:52:46 CST 2024] Extracting master.tar.gz
[Wed Apr 24 22:52:46 CST 2024] It is recommended to install socat first.
[Wed Apr 24 22:52:46 CST 2024] We use socat for standalone server if you use standalone mode.
[Wed Apr 24 22:52:46 CST 2024] If you don't use standalone mode, just ignore this warning.
[Wed Apr 24 22:52:46 CST 2024] Installing to /root/.acme.sh
[Wed Apr 24 22:52:46 CST 2024] Installed to /root/.acme.sh/acme.sh
[Wed Apr 24 22:52:46 CST 2024] Installing alias to '/root/.bashrc'
[Wed Apr 24 22:52:46 CST 2024] OK, Close and reopen your terminal to start using acme.sh
[Wed Apr 24 22:52:46 CST 2024] Installing alias to '/root/.cshrc'
[Wed Apr 24 22:52:46 CST 2024] Installing alias to '/root/.tcshrc'
[Wed Apr 24 22:52:46 CST 2024] Installing cron job
no crontab for root
no crontab for root
[Wed Apr 24 22:52:46 CST 2024] Good, bash is found, so change the shebang to use bash as preferred.
[Wed Apr 24 22:52:48 CST 2024] OK
[Wed Apr 24 22:52:48 CST 2024] Install success!
  • 注意安裝完成後執行;source ~/.bashrc 這樣才能生效 acme.sh 配置
  • 安裝過程有點慢,需要等待下 Install success! 安裝完成。目前官網提供的映象地址不太好用。

3.2 證書安裝

用你在 2.3 步驟獲取的命令進行安裝。

acme.sh --issue -d *.xiaofuge.tech  --dns dns_dp --server https://acme.freessl.cn/v2/DV90/directory/ko9v932ceuu2kr06pe68
爽了!免費的SSL,還能自動續期!
  • 執行命令後,完成安裝即可獲得 *.cer*.key 兩個檔案地址。這個就是用於配置 ssl 域名證書的。

三、域名配置

爽了!免費的SSL,還能自動續期!
  • 配置域名解析,把你要使用的域名和雲伺服器配置上A記錄。這樣請求到域名的時候就會解析到伺服器的IP了,以及對應的 Nginx 轉發。

四、Nginx 配置

1. 指令碼工程

爽了!免費的SSL,還能自動續期!
  • 工程:https://gitcode.net/KnowledgePlanet/road-map/xfg-dev-tech-ssl
  • 說明:工程中提供了Nginx配置的初始資訊,你只需要參考修改為自己的域名後,執行 docker-compose.yml 即可安裝 Nginx

1.1 修改域名

server {
    listen       80;
    listen  [::]:80;
    server_name  ssl01.xiaofuge.tech;

    rewrite ^(.*) https://$server_name$1 permanent;

}

server {
    listen       443 ssl;
    server_name  ssl01.xiaofuge.tech;

    ssl_certificate      /root/.acme.sh/*.xiaofuge.tech_ecc/*.xiaofuge.tech.cer;
    ssl_certificate_key  /root/.acme.sh/*.xiaofuge.tech_ecc/*.xiaofuge.tech.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
  • 首先,修改 ssl01.xiaofuge.tech 為你的域名。
  • 之後,修改 ssl 地址資訊。這個地址是 docker-compose 對映的地址。如果你是 linux 直接安裝,則可以直接使用 acme.sh 安裝的時候生成的地址。
  • 注意,更多 Nginx 配置 https://bugstack.cn/md/road-map/nginx.html

1.2 修改ssl

version: '3'
# docker-compose -f docker-compose.yml up -d
services:
  nginx:
    image: nginx:1.25.3
    container_name: nginx
    ports:
      - '443:443'
      - '80:80'
    volumes:
      - './nginx/logs:/var/log/nginx'
      - './nginx/html:/usr/share/nginx/html'
      - './nginx/conf/nginx.conf:/etc/nginx/nginx.conf'
      - './nginx/conf/conf.d:/etc/nginx/conf.d'
      - '/root/.acme.sh/*.xiaofuge.tech_ecc/*.xiaofuge.tech.cer:/root/.acme.sh/*.xiaofuge.tech_ecc/*.xiaofuge.tech.cer'
      - '/root/.acme.sh/*.xiaofuge.tech_ecc/*.xiaofuge.tech.key:/root/.acme.sh/*.xiaofuge.tech_ecc/*.xiaofuge.tech.key'
    privileged: true
    restart: always
  • 修改 docker-compose 檔案中 cer和 key 的地址。基本就是 xiaofuge.tech 名稱的變化

2. 上傳檔案

爽了!免費的SSL,還能自動續期!
  • 配置資訊全部修改後,上傳到你的雲伺服器上。有些東西還是要雲伺服器鍛鍊,這裡推薦 https://yun.xfg.plus 2c2g 50元一年。

3. 執行指令碼

[root@lavm-aqhgp9nber ~]# cd dev-ops/
[root@lavm-aqhgp9nber dev-ops]# chmod +x docker-compose.yml 
[root@lavm-aqhgp9nber dev-ops]# docker-compose -f docker-compose.yml up -d
[+] Running 1/1
 ✔ Container nginx  Started 
爽了!免費的SSL,還能自動續期!
  • 安裝完成後,可以看到 443、80 埠正常啟動。如果安裝失敗,則可以檢查下日誌。

五、訪問驗證

爽了!免費的SSL,還能自動續期!
  • 訪問地址;https://ssl01.xiaofuge.tech/https://ssl02.xiaofuge.tech/ 驗證證書是否部署成功。
  • 如圖,驗證結果符合預期。

六、推薦閱讀

  • 營銷系統設計
  • MVC2DDD - 架構重構
  • 我把DDD腳手架,釋出到了Maven倉庫,大家都能用了
  • 方案設計:基於庫表分段掃描和資料Redis預熱,最佳化分散式延遲任務觸達時效性

相關文章