1. 程式人生 > >OpenSSL生成證書詳解 如何使用OpenSSL生成自簽證書 轉載

OpenSSL生成證書詳解 如何使用OpenSSL生成自簽證書 轉載

原文:http://my.oschina.net/fajar/blog/425478

使用OpenSSL生成自簽證書(親測)

    一,前言

            讀過我部落格的小夥伴兒都知道,我一般在前言裡面會提到為什麼寫這篇部落格,這次的理由是:公司讓我寫個證書與商業合作伙伴在交換資料時進行簽名和加密。

            需求:

                生成一對 RSA 鑰匙,公鑰採用 X。509 進行加密,私鑰採用 PKCS8 進行加密, 位元組長度為 1024

    二,準備工作

    三,實戰

            1,執行OpenSSL的安裝程式,例如我安裝在 D:\MySoftware\OpenSSL-Win64

            2,設定環境變數

                OPENSSL_HOME = D:\MySoftware\OpenSSL-Win64 (你需要把地址替換你安裝資料夾)

                Path = Path + ; + OPENSSL_HOME (在配環境變數時一定要注意 ;)

            3,建立一個你將用來建立證書的目錄,例如我的是 F:\Test

            4,檔案和目錄補齊(如果不補齊在自簽證書時會報找不到檔案的錯)

                  在你建立證書的目錄下,手動建立如下檔案(檔案作用附加在檔名後面)

                      index.txt  OpenSSL在建立自簽證書時會向該檔案裡寫下索引

                      database.txt  OpenSSL會模擬資料庫將一些敏感資訊寫在該檔案裡

                      serial.txt  建立該檔案後,請編輯在第一行寫下 01

                  注意: 這裡提到的所有檔案必須補齊,並且檔名不得更改 !

            5,開始敲命令吧

                a,生成 CA 根證書,做簽名使用的,因為我們是自己給自己簽名嘛!

                    openssl genrsa -des3 -out root.key 1024

                    這個時候會讓你輸入兩次根證書的密碼,根證書嘛肯定是要保密的

                    

                b,生成 CA 的自簽證書

                    openssl req -new -x509 -key root.key -out root.crt -days 365 -config openssl.conf

                    

                    這個時候會讓你輸入一些組織資訊,請記住,你現在輸入的資訊和你接下來要簽名的資訊一致

                    

                c,同樣的道理生成伺服器端私鑰

                    openssl genrsa -out server.key 1024

                    

                d,生成伺服器端簽名請求檔案

                    openssl req -new -key server.key -out server.csr -config openssl.conf

                    

                    同樣會讓你輸入一個組織資訊,記得跟根證書一致

            e,利用 CA 進行簽名證書

                  openssl ca -in server.csr -out server.crt -keyfile root.key -cert root.crt -days 365 -config openssl.conf

                  到底我們的證書生成完成!但是有些格式不是我們需要的,請看接下倆格式轉換

       6,常用格式轉換

            a,得到 pfx 格式的私鑰

                  openssl pkck12 -export -out server.pfx -inkey server.key -in server.crt

            b,從pfx檔案中分離出 cer 格式的公鑰

                 openssl x509 -inform pem -in server.crt -outform der -out server_public.cer