https SSL 自建證書的製作

  • 客戶端認證服務器:正規的做法是:到國際知名的證書頒發機構,如VeriSign申請一本服務器證書,比如支付寶的首頁,點擊小鎖的圖標,可以看到支付寶是通過VeriSign認證頒發的服務器證書:我們用的操作系統(windows, linux, unix ,android, ios等)都預置了很多信任的根證書,比如我的windows中就包含VeriSign的根證書,那麼瀏覽器訪問服務器比如支付寶www.alipay.com時,SSL協議握手時服務器就會把它的服務器證書發給用戶瀏覽器,而這本服務器證書又是比如VeriSign頒發的,自然就驗證通過了。 國內許多公司的做法:自己做根證書CA(自己充當類似於VeriSign的角色),然後讓用戶下載安裝根CA(當然了,其中只含有公鑰)到機器中,12306就是這樣乾的(SRCA就是12306的根證書),然後再自己給自己頒發服務器證書,這樣用戶機器上也有他的CA,服務器發來的服務器證書也是這本CA頒發的,當然也順利通過了。
  • 服務器認證客戶端:服務器端通過根CA給客戶端頒發客戶端證書,在製作客戶端證書時加上和機器相關的信息就可以保證在特定的時候某個帳號只能在這臺機器上和服務器交換報文,比如我們用支付寶時必須下載安裝數字證書時,可以命名這本證書叫"我的筆記本"或者是"公司電腦"之類的,就是支付寶給用戶頒發證書,只能在這臺機器上用,你換了機器就必須重新申請。建立SSL連接時,先是服務器將自己的服務器證書發給客戶端,驗證通過後,客戶端就把自己的客戶端證書發給服務器進行驗證,如果通過,再進行後面的處理。
  • 下面來說說如何自己製作根CA證書以及服務器證書和客戶端證書:

    https SSL 自建證書的製作


    https SSL 自建證書的製作


    客戶端安裝服務器根證書ca.crt到客戶端信任證書庫中,服務器端安裝服務器根證書ca.crt到服務器信任證書庫中。

    SSL握手時,服務器先將服務器證書server.p12發給客戶端,客戶端會到客戶端信任證書庫中進行驗證,

    因為server.p12是根證書CA頒發的,所以驗證通過;然後客戶端將客戶端證書client.p12發給服務器,同理因為client.p12是根證書CA頒發的,所以驗證通過。

    先下載安裝xca工具,地址是http://xca.hohnstaedt.de/

    先用xca創建一本ca證書

    xca打開的界面

    https SSL 自建證書的製作


    依次File, New DataBase,選擇xdb文件保存路徑,再輸入密碼

    https SSL 自建證書的製作

    切換到Certificates頁面,點擊New Certificate

    https SSL 自建證書的製作

    出現如下界面

    https SSL 自建證書的製作

    因為要創建根證書,這裡選擇序號為1的自認證證書,簽名算法選擇SHA 256,證書模版選擇默認CA,再點擊Apply all(這個不能漏)如下所示:

    https SSL 自建證書的製作

    再切到Subject頁面,填好各個字段,都可以隨便填

    https SSL 自建證書的製作

    再點擊Generate a new key生產私鑰

    https SSL 自建證書的製作

    https SSL 自建證書的製作

    最後點擊OK,CA證書做好了,有效期默認10年

    https SSL 自建證書的製作

    將根證書導出成只包含公鑰的證書格式,這本根證書就是放在網站上供用戶下載安裝,或主動安裝到客戶機器中的:

    https SSL 自建證書的製作


    製作服務器證書、客戶端證書和製作CA證書差不多,只有兩個地方不一樣:

    1. 選擇已經制作好的根CA,然後點擊New Certificate簽名時,選擇使用根證書,這裡是hangzhou進行簽名頒發,然後證書模版選擇服務器(製作客戶端證書就選擇HTTPS_client),其他都和製作根證書一樣,然後點擊Apply all(這個一定不能忘),然後再切到Subject、Extension頁面填寫相應的東西就OK了製作完成:然後再將服務器證書導出來,選擇p12格式同理製作客戶端證書,並將之導出,也是p12格式的證書,包含私鑰


    分享到:


    相關文章: