創作內容

0 GP

OpenSSL 產憑證研究

作者:pupu│2017-07-04 16:34:03│巴幣:0│人氣:3750
緣由

因為測試服務越來越多用HTTPS,自己產完憑證,每次使用都要再加一次覺得麻煩。
因此來研究怎麼做根憑證與套用根憑證授權,以後直接加一次根憑證,後面授權的就可以全都用。

基本的就不介紹了,網路上有文章詳述。

(http://blog.yogo.tw/2009/11/ssl.html 或 google https, ssl 等等關鍵字)

有空有閒的話也許會有理論篇... (逃

開始

首先,要有安裝 OpenSSL ,在公司是用 CentOS,windows 上面也可以裝。
(http://slproweb.com/products/Win32OpenSSL.html)
下面使用 Win32OpenSSL_Light-1_1_0f.exe 版本。

創建根憑證

產生 Private Key。( -out 後面接輸出檔名;數字是key長度,越長越安全 )

openssl genrsa -des3 -out RootCA.key 2048



Linux 上通常會再執行 chmod,鎖定 key 檔存取權限。

chmod og-rwx RootCA.key

!!! key 檔請注意保存 !!!
憑證會有公鑰(crt)跟私鑰(key),用一把鑰匙加密的東西可以用另一把解開,ROOT CA的私鑰被拿走以後,基本上拿走的人想簽甚麼就可以簽甚麼。

產生申請檔

openssl req -new -key RootCA.key -out RootCA.req



出現問題了,原來需要指定 openssl.cfg 檔。

SET OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg



再一次就成功了,下面就是輸入一些憑證資料,可以去網上查查。



產生憑證檔
days 後面是有效天數,3650 = 十年;編碼方式這邊用 sha256,不建議用 sha1 ,有破解風險,新版瀏覽器也開始檔 SHA1 憑證了

openssl x509 -req -days 3650 -sha256 -signkey RootCA.key -in RootCA.req -out RootCA.crt



就這樣根憑證完成了,會有三個檔案:

RootCA.key:Private Key 要好好保存,被別人拿到就可以偷聽你的 HTTPS 連線內容,甚至用來簽發未經授權的憑證。

RootCA.crt:Public Key 公開給大家用的,後面簽憑證也會用到。

RootCA.req:申請檔(用不太到了)

crt 內容:



創建伺服器憑證

產生 Private Key

openssl genrsa -out ServerC.key 2048



不用輸入密碼。

Linux 上鎖權限。

chmod og-rwx ServerC.key

產生申請檔

openssl req -new -key ServerC.key -out ServerC.req



這邊要注意,Common Name 不能跟上層的一樣,否則會是有問題的憑證。

產生憑證檔

openssl x509 -req -days 365 -sha256 -CA RootCA.crt -CAkey RootCA.key -CAserial RootCA.srl -CAcreateserial -in ServerC.req -out ServerC.crt



這樣就完成了,憑證授權的 domain 就是 babu.com,也就是上面輸入的 FQDN 欄位,但是新版 chrome 檢查方式不同了,建議使用後面的方式產

crt 內容:



※ IIS 用的是 pfx 格式,需要另外打包,附錄有。

創建多 Domain 憑證

產生 Private Key

openssl genrsa -out ServerM.key 2048



不用輸入密碼。

Linux 鎖權限。

chmod og-rwx ServerM.key

產生申請檔

openssl req -new -key ServerM.key -out ServerM.req



準備 conf 檔

ServerM.ext.conf

basicConstraints = CA:FALSE
subjectAltName = @alt_names

[alt_names]
DNS.1   = DomainA.com
DNS.2   = DomainB.com
DNS.3   = DomainC.com
IP.4        = 10.1.1.1



因為是 end entity 所以 CA 設為 FALSE,下方自己配置多個 domain、IP,domain 使用 DNS,IP 使用 IP。

對參數有興趣可以參考:https://www.openssl.org/docs/manmaster/man5/x509v3_config.html

產生憑證檔

openssl x509 -req -days 3650 -sha256 -CA RootCA.crt -CAkey RootCA.key  -CAserial RootCA.srl -CAcreateserial -in ServerM.req -out ServerM.crt -extfile ServerM.ext.conf



這樣就完成了,憑證授權的 domain 就是 DomainA.com、DomainB.com、DomainC.com,IP 是 10.1.1.1。

crt 內容:



可以發現他是V3版的憑證,下面的 Subject Alternative Name 有三個 domain,一個 IP。

最後在所有要正常驗證憑證的電腦加上最開始產生的 RootCA.crt ,所有由他產出的憑證就通通有效囉 !



好處就是以後有新的測試機不用一直在加新憑證囉~

以上內容建議只在自己環境測試用。

其實RootCA通常只用來簽署中繼使用,一般憑證都是用中繼去簽署比較安全,畢竟根憑證外流就...

詳細可以參考:https://jamielinux.com/docs/openssl-certificate-authority/index.html

附錄

PFX 打包

openssl pkcs12 -export -in ServerC.crt -inkey ServerC.key -out ServerC.pfx -certfile RootCA.crt

in:傳入的公開憑證
inkey:傳入的私密憑證
out:打包完的 pfx 檔
certfile:額外包入的憑證檔



到IIS匯入PFX順便輸入密碼即可。

中繼憑證(Intermediate Certification)


IIS Server 需要將中繼憑證加到 Intermediate Certification 裡去。(點憑證檔直接加到該分類)

參考網頁

http://slproweb.com/products/Win32OpenSSL.html

http://fannys23.pixnet.net/blog/post/30619452-%5Bwindows%5D-%E9%80%8F%E9%81%8E-openssl-%E7%94%A2%E8%A3%BD%E9%87%91%E9%91%B0%E6%AA%94%E8%88%87%E6%86%91%E8%AD%89%E6%AA%94

https://www.sslbuyer.com/index.php?option=com_content&view=article&id=183:what-is-certificate-chain&catid=25&Itemid=4031

https://jamielinux.com/docs/openssl-certificate-authority/index.html

http://www.ichiayi.com/wiki/tech/openssl_caserver

https://gist.github.com/Soarez/9688998

https://www.ssl.com/how-to/create-a-pfx-p12-certificate-file-using-openssl/

https://www.openssl.org/docs/manmaster/man5/x509v3_config.html
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3631405
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

喜歡★babu61509 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:SONY 10 RBT ... 後一篇:ProRender fo...

追蹤私訊切換新版閱覽

作品資料夾

kkll7952全體巴友
+ 3月-4月遊戲製作進度+簡報分享(2024) + https://home.gamer.com.tw/creationDetail.php?sn=5919640看更多我要大聲說3小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】