OpenSSL初體驗

如何在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掃一下,已無風險存在