1. 程式人生 > >使用OpenSSL生成私鑰(Private Key)以及根據Private Key建立證書

使用OpenSSL生成私鑰(Private Key)以及根據Private Key建立證書

                公鑰和私鑰通常是成對出現的,有了公鑰那就存在對應的私鑰,通常OpenSSL,公鑰是很容易從私鑰中得到的,因而我們要建立證書,那我們首先要做的就是建立私鑰。1、使用OpenSSL生成私鑰常用的生成演算法有RSA及DSA,RSA生成的私鑰可以用來加密以及簽名,而DSA生成的私鑰只可以用來簽名1.1)、RSA演算法生成key的示例 openssl genrsa -des3 -out privkey.pem 2048 genrsa:指定了生成了演算法使用RSA-desc:表示生成的key是有密碼保護的(注:如果是將生成的key與server的證書一起使用,最好不需要密碼,就是不要這個引數,否則其它人就會在請求的時候每次都要求輸入密碼)-out:後面的引數表示生成的key的輸入檔案2048:表示的是生成key的大小,單為位元組(bits)1.2)、DSA演算法生成key的示例根據DSA演算法生成Key需要兩步:1.2.1)、第一步是生成用於生成Key的引數: openssl dsaparam -out dsaparam.pem 20481.2.2)、根據生成的引數生成Key:openssl gendsa -des3 -out privkey.pem dsaparam.pem詳細參見:http://www.openssl.org/docs/HOWTO/keys.txt2、使用OpenSSL建立證書申請及自簽名證書在第1步中,我們已經建立好了私鑰,這個時候我們就可以使用建立好的private.pem來建立證書申請及自簽名證書。2.1) 建立證書申請openssl req -new -key privkey.pem -out cert.csr使用上面的命令就會建立一個證書申請,這裡我們會要求輸入國家、組織、姓名等資訊,但是不會要求輸入證書有效天數,因為證書有效天數是CA認證中心給我們的;然後我們會把這個生成好的cert.csr(Certificate Signing Request (CSR):證書籤名申請)發給CA認證中心。CA認證中心通過後,會反饋(通常是郵件)回來認證的資訊,再匯入即可。關於匯出CSR以及匯入CA認證資訊,可以參看文件:http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/keytool.html2.2) 建立自簽名的證書openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095如果不需要第三方授權,或者是要建立一個用於測試的授權,我們就可以這樣操作。後面的引數"-days 1095"表示授權天數為1095天。詳細參見:http://www.openssl.org/docs/HOWTO/certificates.txt