1. 程式人生 > >openssl生成自簽名證書

openssl生成自簽名證書

發送 etc des you stat 同時 信息 內部 簽名

第1步:生成私鑰
使用openssl工具生成一個RSA私鑰

openssl genrsa -des3 -out server.key 2048
說明:生成rsa私鑰,des3算法,2048位強度,server.key是秘鑰文件名。

註意:生成私鑰,需要提供一個至少4位的密碼。

第2步:生成CSR(證書簽名請求)
生成私鑰之後,便可以創建csr文件了。

此時可以有兩種選擇。理想情況下,可以將證書發送給證書頒發機構(CA),CA驗證過請求者的身份之後,會出具簽名證書(很貴)。另外,如果只是內部或者測試需求,也可以使用OpenSSL實現自簽名,具體操作如下:


openssl req -new -key server.key -out server.csr
說明:需要依次輸入國家,地區,城市,組織,組織單位,Common Name和Email。其中Common Name,可以寫自己的名字或者域名,如果要支持https,Common Name應該與域名保持一致,否則會引起瀏覽器警告。

Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Beijing
Locality Name (eg, city) []:Beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:joyios
Organizational Unit Name (eg, section) []:info technology
Common Name (e.g. server FQDN or YOUR name) []:demo.joyios.com
Email Address []:[email protected]

第3步:刪除私鑰中的密碼
在第1步創建私鑰的過程中,由於必須要指定一個密碼。而這個密碼會帶來一個副作用,那就是在每次Apache啟動Web服務器時,都會要求輸入密碼,這顯然非常不方便。要刪除私鑰中的密碼,操作如下:

cp server.key server.key.org
openssl rsa -in server.key.org -out server.key

第4步:生成自簽名證書
如果你不想花錢讓CA簽名,或者只是測試SSL的具體實現。那麽,現在便可以著手生成一個自簽名的證書了。

需要註意的是,在使用自簽名的臨時證書時,瀏覽器會提示證書的頒發機構是未知的。

生成.cer帶公鑰的自簽名證書
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.cer

生成.crt帶公鑰的自簽名證書
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt


說明:crt上有證書持有人的信息,持有人的公鑰,以及簽署者的簽名等信息。當用戶安裝了證書之後,便意味著信任了這份證書,同時擁有了其中的公鑰。證書上會說明用途,例如服務器認證,客戶端認證,或者簽署其他證書。當系統收到一份新的證書的時候,證書會說明,是由誰簽署的。如果這個簽署者確實可以簽署其他證書,並且收到證書上的簽名和簽署者的公鑰可以對上的時候,系統就自動信任新的證書。

第5步:安裝私鑰和證書
將私鑰和證書文件復制到Apache的配置目錄下即可,在Mac 10.10系統中,復制到/etc/apache2/目錄中即可。

生成帶私鑰的.pfx的文件
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt

openssl生成自簽名證書