openssl自建CA證書(親驗證)

  
1. 準備
    1) 在工作目錄下新建目錄 demoCA、demoCA/private、demoCA/newcerts(工作目錄:/home/userName)
    2) 在demoCA建立一個空文件 index.txt
    3) 在demoCA建立一個文本文件 serial, 沒有擴展名,內容是一個合法的16進制數字,例如 0000
    4) 配置環境變量PATH,加入%JAVA_HOME%/bin(如果安裝了多個版本的jdk,最好暫時都在環境變量中去掉,只保留一個)
    5) 修改openssl.cnf文件,將生成目錄切換到我們自己新建的工作目錄中;
        dir = /home/userName/demoCA # Where everything

   
2. 生成CA簽名證書(在命令終端,將目錄切換到/home/userName/demoCA,一直在該目錄下操作
    openssl req -new -x509 -keyout ca.key -out ca.cer -days 3650
    req命令表示創建證書,new參數表示創建私鑰而不是從已存在的文件中讀取。
    輸入證書信息時,Country Name填入CN,Common Name輸入單位名稱,即最後顯示的頒發者。
    執行完之後,生成ca.key 和ca.cer文件

   
3.  生成server端待簽證書
        1) 首先要生成服務器端的私鑰(key文件):
        openssl genrsa -des3 -out server.key 1024
        運行時會提示輸入密碼,此密碼用於加密key文件(參數des3便是指加密算法,當然也可以選用其他你認爲安全的算法.),以後每當需讀取此文件(通過openssl提供的命令或API)都需輸入口令.如果覺得不方便,也可以去除這個口令,但一定要採取其他的保護措施!
        去除key文件口令的命令:
        openssl rsa -in server.key -out server.key

        2) 生成csr(cer)證書
            openssl req -new -key server.key -out server.csr
        生成Certificate Signing Request(CSR),生成的csr文件交給CA簽名後形成服務端自己的證書.屏幕上將有提示,依照其指示一步一步輸入要求的個人信息即可.(輸入common name時,要和服務器的域名保持一致,test.baidu.com,)

   
4. 用生成的CA證書對服務器端的證書進行簽名
        openssl ca -in server.csr -out server.cer -cert ca.cer -keyfile ca.key
        在簽名時,如果報“The stateOrProvinceName field needed to be the same in the CA certificate”,是因爲在openssl.cnf中的policy_match裏面        的前三個都選了match,修改成 
        stateOrProvinceName = optional 
        organizationName = optional 
就可以了








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章