跳到主要內容

Windows使用Apache/WIN-ACME申請免費Let's Encrypt的SSL憑證

 

在Windows下使用Apache架站時,申請Let's Encrypt的SSL憑證的步驟:

1.確認web的port 80可以連線

有http自動轉https的話要關掉


2.下載win-acme

https://www.win-acme.com/

解壓縮後執行wacs.exe(可能要管理員權限)


3.wacs.exe操作如下

選m

選2


輸入網址(不用加https)

選4

選1

輸入網站根目錄位置

選2

選2


輸入存檔SSL憑證的位置

選1

選5

選3

之後enter按到底,會開始自動申請憑證,申請成功後按q離開wacs.exe

4.修改http-ssl.conf

加入或修改下面三行

SSLCertificateFile "SSL憑證存檔位置/網站名稱-crt.pem"

SSLCertificateKeyFile "SSL憑證存檔位置/網站名稱-key.pem"

SSLCertificateChainFile "SSL憑證存檔位置/網站名稱-chain.pem"

5.重啟apache

6.自動更新憑證

寫一個bat,加到工作排程

cd C:/win-acme(就是解壓縮win-acme的地方)

wacs.exe --renew --force

net stop Apache2.4 && net start Apache2.4


7.追記

如果是不能直接登入網站主機只能使用網頁空間的狀況,必須先在自己的電腦上申請憑證的認證密碼,然後再上傳到網頁空間中提供驗證,方式如下:


下載 ssl-certbot
https://www.markkulab.net/2021/12/26/ssl-certbot/
https://github.com/certbot/certbot/releases/download/v1.22.0/certbot-beta-installer-win32.exe

安裝 ssl-certbot後在cmd中
C:\Program Files (x86)\Certbot\bin>   輸入
certbot certonly --manual --preferred-challenges http -d 你的網址

中間會生成檔案,上傳到指定位置,然後進行驗證

1. Certbot 會顯示驗證資訊:
   Create a file containing just this data:
   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
   And make it available on your web server at this URL:
   http://你的網址/.well-known/acme-challenge/yyyyyyyyyyyyy

2. 透過 FTP 上傳 `.well-known` 資料夾到 `你的網址` 的網站根目錄

3. 測試 URL:
   http://你的網址/.well-known/acme-challenge/yyyyyyyyyyyyy
   確認瀏覽器可以看到驗證字串

4. 回到 Certbot 按 Enter 完成驗證

5. 驗證成功後憑證會在:
C:\Certbot\live\你的網址\
├── fullchain.pem  (完整憑證鏈)
├── privkey.pem    (私鑰)
├── cert.pem       (憑證)
└── chain.pem      (中繼憑證)



留言

這個網誌中的熱門文章

網站掃描CSP弱點問題

 最近被網站弱點掃描的CSP問題困擾很久,CSP問題主要是兩種: 1.在CSP中允許內聯腳本執行 2.從CSP中缺少必要的指令 AppScan這兩個問題提供的處理方式都是「配置正確值的Content-Security-Policy」,等於沒說。 後來才發現AppScan無法處理多層的Content-Security-Policy,例如在httpd.conf中設定: default-src 'self' 'unsafe-inline'; 又在htaccess設定 script-src 'self'; 正常來說瀏覽器會採用htaccess的設定,即「script-src 'self';」而不是「script-src 'self' 'unsafe-inline'」,以安全性來說是符合的,但AppScan無法判斷,直接當你沒設定好CSP,解決方法只有不要重複設定,保留一項設定就好。

2016鳥取島根岡山之旅(三)

松江站身輕便(松江駅身がる便) 松江站提供的行李寄送服務,服務對象是宍道湖溫泉和玉造溫泉的住宿客,服務時間為早上九點到下午三點,三點以後會開始配送行李到各個旅館,通常五點前就會送到了。 對不想拎著行李逛街的人來說非常方便,反正都要寄放行李,不如寄到旅館,而且還只要500円,大型行李櫃都還要700円說,實在很划算。 能送到的旅館只限「松江市內」,也就是位在「宍道湖溫泉」和「玉造溫泉」的溫泉旅館。 參考網址: http://www.kankou-matsue.jp/information/service/ http://www.saninji.jp/1930 實際寄送方式如下: 1.到JR松江站以後抬頭就會看到一個看板,照著看板指示前往「南口」的「臨時寄物處」(荷物一時預り所)。 2.由於臨時寄物處在站外,如果一下子找不到的話可以先找到寄物櫃,也就是コインロッカー(Coin Lockers) 3.寄物櫃旁邊就會看到這個招牌,繼續沿著站外走。 4.路上會一直有標示,指引前往臨時寄物處。 5.這裡就是了,別看有派出所就怕了,就是這裡沒錯。 6.跟裡面的人說要寄到哪裡,他會幫你寫好寄送位置,你只要寫名字就好,寫跟旅館訂房間的名字,如果訂房時只有一個名字,寫那個人就可以了。 7.可能會問你有沒有手機號碼,不過大部分人就算有也打不通,說沒有也沒關係。 8.最後會拿到一張收據,理論上要憑收據到旅館櫃檯領行李,不過溫泉旅館秉著服務至上的精神,只要訂房名字沒錯的話,就會直接幫你放到房間裡。

Google 分析 (Google Analytics) 造成的「加密的階段作業 (SSL) Cookie 中遺漏安全屬性」

 Google 分析 (Google Analytics) 的cookies會造成「加密的階段作業 (SSL) Cookie 中遺漏安全屬性」的弱點,網路上有一種解決方式,在gtag中加上參數,如下: gtag('config', 'G-XXXXXXXXXX', {'cookieFlags': 'SameSite=Strict; Secure'}); 但我的系統卻無法使用,研究了一下,要拆開寫,如下   gtag('set', 'cookie_flags', 'SameSite=Strict;Secure');   gtag('config', 'G-XXXXXXXXXX'); 要拆成兩行,Secure就可以用了。 但更簡單的方法是在httpd.conf中加入這一行 Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=Strict 解決。