如何在Windows平台進行OpenSSL憑證申請呢?
過往外部憑證都建議客戶使用TWCA,但這個憑證是要收費的,今天遇到客戶FortiGate防火牆被弱掃到有漏洞,主因為憑證加密演算法太弱了
但客戶又沒有預算申請憑證只好參考FortiGate certificate using weak signature hash algorithm SHA-1進行免費的openssl申請及更換
首先要先至openssl for windows下載openssl-1.0.2j-fips-x86_64.zip將其解開在c:\OpenSSL目錄,並將bin目錄下的openssl.cnf複製到c:\OpenSSL,否則待會產生private key會出現WARNING: can't open config file: C:/OpenSSL/openssl.cnf的錯誤訊息。
接下來要用系統管理員開啟MS-DOS視窗,否則會有另一個unable to write 'random state'錯誤訊息產生
接下來開始進行憑證申請,首先要產生Private key,在c:\OpenSSL\bin執行以下命令
openssl.exe genrsa -out private.key 2048
產生Private key後執行以下指令產生csr檔案,其中mycsr.csr可以自行變更為想要的檔名
openssl.exe req -out mycsr.csr -key private.key -new -sha256
此時會要求輸入憑證的相關資訊,輸入完在extra項目按Enter跳過即可
最後執行以下指令產生crt檔案,其中-day參數為憑證有效天數,本例中為一年365天
openssl x509 -req -sha256 -days 365 -in mycsr.csr -signkey private.key -out mycert.crt
完成後在c:\OpenSSL\bin可以看到3個檔案
這樣就完成了OpenSSL的申請了
接下來就要進行FortiGate防火牆的憑證更換,預設Certificates是不會開啟的,要先至System > Config > Features. 點選Show More, 啟動Certificates後
在System下才看得到Certificates項目
在Certificates點選Import將剛才的檔案上傳
完成後在Local CA就可以看到上傳的CA了
接下來在CLI Console執行以下指令
config system global
set admin-server-cert mycert
end
以及
config vpn ssl setting
set servercert mycert
end
再重新登入檢視憑證可發現憑證已更換
用web inspector掃一下,已無風險存在