現場(環境):CentOS 7.3 套件: openssl
原因:
雖然現在用let’s encrypt驗證方式,
相當快就可以拿到可以用的SSL憑證。
但總會有特定狀況沒法成功申請let’s encrypt憑證。
在沒有要添購外部驗證憑證的狀況下,
要使用SSL憑證該怎麼處理?
處理方式:
如果遇到以上的狀況,申請私有憑證會是比較好的解套方式。
參考網址理由談到SSL 採用 X.509 由上至下的憑證制度。
(RootCA → CA → 憑證)
一般來說我們要申請憑證都會去找CA,
再由CA去向最高中心RootCA申請核發。
最後會取得一層又一層認證過的憑證。
而這邊我們要自己做私有憑證。
就代表以上所有角色都是由我們執行!
所以要先了解上面的運作流程。
* 私有憑證做出來外面絕對都不會承認它,這點要記住。
* 做私有憑證的原因,基本上只是會了符合內部的需求使用。
Step1. 自己製作RootCA 的私有金鑰(Key)
[RootCA 伺服器]
切換一個要放私有金鑰(key)的地方
#cd /etc/ssl
製作私有金鑰
# openssl genrsa -des3 -out rootca.key 2048
這邊的密碼是RootCA的私鑰用的。
Step2. 填寫憑證申請書
[RootCA 伺服器]
有了這把私鑰,就可以用他來填寫申請書(rootca.req)
#openssl req -new -key rootca.key -out rootca.req
Step3. 簽發憑證
[RootCA 伺服器]
這邊參考網址有說,這邊自己是RootCA,
所以是自己簽給自己的狀況。
建議別把過期時間設得太短,不然到時候這邊過期,
他簽發出去的所有憑證都會一起過期,就演變成全部都要重簽。
// -days 後面帶的是日子。這邊設36500表示10年。
#這邊要先找一下本機的openssl.cnf檔案在哪裡。
#find / -name openssl.cnf
找到路徑後帶進簽發憑證的指令
#openssl x509 -req -days 36500 -sha1 -extfile /etc/pki/tls/openssl.cnf -extensions v3_ca -signkey rootca.key -in rootca.req -out rootca.crt
這邊可以看到憑證的申請資料都被帶出來了。
而這邊輸入完金鑰密碼就算是核發完成。
(RootCA方面已經製作完成 )
接續到有需求的伺服器端去製作。
Step4. 製作伺服器使用的私有金鑰
[要申請憑證的伺服器]
這邊由申請憑證的機器至做出私有金鑰(Private Key)
參考網址有說: 這邊做私有金鑰,不要設定密碼。
不然服務端在使用憑證時會跳出輸入密碼的訊息。
#openssl genrsa -out [網址].key 2048
Step5. 製作伺服器的憑證申請書
[要申請憑證的伺服器]
#openssl req -new -key [網址].key -out [網址].req
Step 6. RootCA接收到請求。準備簽發憑證
[RootCA 伺服器]
簽發伺服器端送上來的申請書
因為是我們要核發出去的憑證,
時間方面就依我們的需求,像本例設定為10年(-days 3650)。
// -out 後面出來的 [網址].crt 就是我們要的憑證。
#openssl x509 -req -days 3650 -sha1 -extfile /etc/pki/tls/openssl.cnf -extensions v3_req -CA rootca.crt -CAkey rootca.key -CAserial rootca.srl -CAcreateserial -in [網址].req -out [網址].crt
這步驟完成就會產生 [網址].crt 檔案。
將這個憑證檔回傳給申請的伺服器端,就完成憑證核發的作業。
Step 7. 伺服器端有什麼?
申請書交至RootCA後,經過簽核流程,
會傳回一個[網址].crt檔案。 這個就是我們要用的SSL憑證。
另外我們一開始有用[網址].key去包裝申請單,這個key就是私有金鑰。
所以伺服器端要設定SSL憑證的話,需要的檔案有兩隻。
1) SSL憑證( [網址].crt )
2) 伺服器的私有金鑰 ([網址].key)
要設定相關服務也都是用這兩個檔案就可以完成。
關於自己申請憑證的方式介紹到這邊,大家可以自己試試看。
套用到服務方面就請大家依各自需求,到google查詢了。
<本篇完>
參考網址:
不自量力のWeithenn: SSL Certificate-自行產生SSL 憑證
留言列表