https SSL certificate

雖然很久以前幫系上申請 ipsCA 憑證的時候寫過一篇文章,但是因為寫的時候離整個申請過程已經過了一段時間,所以產生 key 和 certificate request 的過程忘了差不多了,就只寫了一些備註而已。今天剛好公司的 SSL VPN 也碰到類似的狀況要申請 certificate,所以又花了快要半天的時間在研究這個該如何搞定…

如果你用的軟體有 UI 可以幫你生 private key 和 certificate request 當然是再好不過了,你只要拿著產生出來的 request 到 CA 認證單位去填申請資料讓他們審核,他們就會把簽好的認證寄回來給你,通常也會附上怎麼設定 server 的步驟。但是如果沒有 UI 那就只好用 openssl command line 慢慢來了:

  1. 首先要先產生 private key
    openssl genrsa -out server.key 1024
  2. 後面的 1024 是指 key 的 bit 長度,越大越安全但是也會影響到效率,通常用到 2048bit 而已。

  3. 接著就是拿 key 去產生 request
    openssl req -new -key server.key -out server.csr
  4. 如果是要拿去給認證單位簽的話到這步就夠了,把生出來的 csr 裡面內容給認證單位,他們簽好就會給你簽過的憑證。如果你只是要自己練習過程,那就自己當 Root CA 簽發憑證給自己吧!

  5. 如果是製作 self-signed 憑證就還需要用這個指令
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

不管你是自己簽的還是給認證機構簽的,到最後你一定會需要用到的檔案是 server.key 和 server.crt 這兩個檔案。然後就看你用的 server 需求去設定,有的是分別讀取 private key (.key) 和 certificate (.crt),有的會要你把他們放在一起存成一個 .pem 檔案。

之前的文章有提到像是 ipsCA 簽出來的憑證並不是用 Root CA 直接簽的,而是 Root CA 簽過的憑證再去簽出來的,所以會需要在 server 裡面也放上 chain certificate file 才不會被瀏覽器擋下來。憑證的簽發之所以貴就在於那些會被內建在瀏覽器的 Root CA 是很稀有的,但是你用了他們底下機構簽出來的憑證就可以讓瀏覽器不需要手動加入憑證直接確認你的身分,特別是在 IE7 以後的版本 (Firefox 忘記哪板就會了) 會因此顯示出大大的警告畫面。

對於上面過程中產生的檔案和用途可以參考網路上很熱門的文章,我就不多做解釋了。

Advertisement

1 Comment »

  1. [...] 因為要測自己家的 SSL VPN 所以上次複習了一次怎麼申請憑證和設定,但是因為自家的設備三不五時改版就要測一下,免費的測試憑證有效期大概三個月左右 (上次測試是找 Comodo 申請的),而且過程也不見得容易 (Comodo 要 domain 管理者 email 確認,所以我又自己架了 mail server 來收信),然後就開始研究怎麼自己簽中繼憑證。 [...]

RSS feed for comments on this post · TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.