日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何生成CA证书

發布時間:2025/3/21 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何生成CA证书 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.csdn.net/fyang2007/article/details/6180361

http://blog.sina.com.cn/s/blog_4fd50c390101891c.html


一般情況下,如果能找到可用的證書,就可以直接使用,只不過會因證書的某些信息不正確或與部署證書的主機不匹配而導致瀏覽器提示證書無效,但這并不影響使用。

需要手工生成證書的情況有:

  • 找不到可用的證書
  • 需要配置雙向SSL,但缺少客戶端證書
  • 需要對證書作特別的定制
  • 首先,無論是在Linux下還是在Windows下的Cygwin中,進行下面的操作前都須確認已安裝OpenSSL軟件包。

    1. 創建根證書密鑰文件(自己做CA)root.key

    openssl genrsa -des3 -out root.key

    輸出內容為:

    [lenin@archer ~]$ openssl genrsa -des3 -out root.key
    Generating RSA private key, 512 bit long modulus
    ……………..++++++++++++
    ..++++++++++++
    e is 65537 (0×10001)
    Enter pass phrase for root.key: ← 輸入一個新密碼
    Verifying – Enter pass phrase for root.key: ← 重新輸入一遍密碼

    2. 創建根證書的申請文件root.csr

    openssl req -new -key root.key -out root.csr

    輸出內容為:

    [lenin@archer ~]$ openssl req -new -key root.key -out root.csr
    Enter pass phrase for root.key: ← 輸入前面創建的密碼
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter ‘.’, the field will be left blank.
    —–
    Country Name (2 letter code) [AU]:CN ← 國家代號,中國輸入CN
    State or Province Name (full name) [Some-State]:BeiJing ← 省的全名,拼音
    Locality Name (eg, city) []:BeiJing ← 市的全名,拼音
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名
    Organizational Unit Name (eg, section) []: ← 可以不輸入
    Common Name (eg, YOUR name) []: ← 此時不輸入
    Email Address []:admin@mycompany.com ← 電子郵箱,可隨意填

    Please enter the following ‘extra’ attributes
    to be sent with your certificate request
    A challenge password []: ← 可以不輸入
    An optional company name []: ← 可以不輸入

    3. 創建一個自當前日期起為期十年的根證書root.crt

    openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey root.key -in root.req -out root.crt

    輸出內容為:

    [lenin@archer ~]$ openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey root.key -in root.csr -out root.crt
    Signature ok
    subject=/C=CN/ST=BeiJing/L=BeiJing/O=MyCompany Corp./emailAddress=admin@mycompany.com
    Getting Private key
    Enter pass phrase for root.key: ← 輸入前面創建的密碼

    4. 創建服務器證書密鑰server.key

    openssl genrsa –des3 -out server.key 2048

    輸出內容為:

    [lenin@archer ~]$ openssl genrsa -out server.key 2048
    Generating RSA private key, 2048 bit long modulus
    ….+++
    …………………………………………..+++
    e is 65537 (0×10001)

    運行時會提示輸入密碼,此密碼用于加密key文件(參數des3便是指加密算法,當然也可以選用其他你認為安全的算法.),以后每當需讀取此文件(通過openssl提供的命令或API)都需輸入口令.如果覺得不方便,也可以去除這個口令,但一定要采取其他的保護措施!
    去除key文件口令的命令:
    openssl rsa -in server.key -out server.key

    5.創建服務器證書的申請文件server.csr

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

    輸出內容為:

    [lenin@archer ~]$ openssl req -new -key server.key -out server.req
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter ‘.’, the field will be left blank.
    —–
    Country Name (2 letter code) [AU]:CN ← 國家名稱,中國輸入CN
    State or Province Name (full name) [Some-State]:BeiJing ← 省名,拼音
    Locality Name (eg, city) []:BeiJing ← 市名,拼音
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名
    Organizational Unit Name (eg, section) []: ← 可以不輸入
    Common Name (eg, YOUR name) []:www.mycompany.com ← 服務器主機名,若填寫不正確,瀏覽器會報告證書無效,但并不影響使用
    Email Address []:admin@mycompany.com ← 電子郵箱,可隨便填

    Please enter the following ‘extra’ attributes
    to be sent with your certificate request
    A challenge password []: ← 可以不輸入
    An optional company name []: ← 可以不輸入

    6. 創建自當前日期起有效期為期兩年的服務器證書server.crt

    openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAserial root.srl -CAcreateserial -in server.csr -out server.crt

    輸出內容為:

    [lenin@archer ~]$ openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAcreateserial -in server.csr -out server.crt
    Signature ok
    subject=/C=CN/ST=BeiJing/L=BeiJing/O=MyCompany Corp./CN=www.mycompany.com/emailAddress=admin@mycompany.com
    Getting CA Private Key
    Enter pass phrase for root.key: ← 輸入前面創建的密碼

    7. 創建客戶端證書密鑰文件client.key

    openssl genrsa -des3 -out client.key 2048

    輸出內容為:

    [lenin@archer ~]$ openssl genrsa -des3 -out client.key 2048
    Generating RSA private key, 2048 bit long modulus
    ……………………………………………………………………………..+++
    ……………………………………………………………………………………………………….+++
    e is 65537 (0×10001)
    Enter pass phrase for client.key: ← 輸入一個新密碼
    Verifying – Enter pass phrase for client.key: ← 重新輸入一遍密碼

    8. 創建客戶端證書的申請文件client.csr

    openssl req -new -key client.key -out client.csr

    輸出內容為:

    [lenin@archer ~]$ openssl req -new -key client.key -out client.csr
    Enter pass phrase for client.key: ← 輸入上一步中創建的密碼
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter ‘.’, the field will be left blank.
    —–
    Country Name (2 letter code) [AU]:CN ← 國家名稱,中國輸入CN
    State or Province Name (full name) [Some-State]:BeiJing ← 省名稱,拼音
    Locality Name (eg, city) []:BeiJing ← 市名稱,拼音
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名
    Organizational Unit Name (eg, section) []: ← 可以不填
    Common Name (eg, YOUR name) []:Lenin ← 自己的英文名,可以隨便填
    Email Address []:admin@mycompany.com ← 電子郵箱,可以隨便填

    Please enter the following ‘extra’ attributes
    to be sent with your certificate request
    A challenge password []: ← 可以不填
    An optional company name []: ← 可以不填

    9. 創建一個自當前日期起有效期為兩年的客戶端證書client.crt

    openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAserial root.srl -CAcreateserial -in client.csr -out client.crt

    輸出內容為:

    [lenin@archer ~]$ openssl x509 -req -days 730 -sha1 -extensions v3_req -CA root.crt -CAkey root.key -CAcreateserial -in client.csr -out client.crt
    Signature ok
    subject=/C=CN/ST=BeiJing/L=BeiJing/O=MyCompany Corp./CN=www.mycompany.com/emailAddress=admin@mycompany.com
    Getting CA Private Key
    Enter pass phrase for root.key: ← 輸入上面創建的密碼

    10. 將客戶端證書文件client.crt和客戶端證書密鑰文件client.key合并成客戶端證書安裝包client.pfx

    openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx

    輸出內容為:

    [lenin@archer ~]$ openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx
    Enter pass phrase for client.key: ← 輸入上面創建的密碼
    Enter Export Password: ← 輸入一個新的密碼,用作客戶端證書的保護密碼,在客戶端安裝證書時需要輸入此密碼
    Verifying – Enter Export Password: ← 確認密碼

    11. 保存生成的文件備用,其中server.crtserver.key是配置單向SSL時需要使用的證書文件,client.crt是配置雙向SSL時需要使用的證書文件,client.pfx是配置雙向SSL時需要客戶端安裝的證書文件

    ???? .crt文件和.key可以合到一個文件里面,把2個文件合成了一個.pem文件(直接拷貝過去就行了)

    參考:http://sinolog.it/?p=1460


    //


    //

    http://blog.sina.com.cn/s/blog_4fd50c390101891c.html

    x509證書一般會用到三類文,key,csr,crt。

    Key是私用密鑰openssl格,通常是rsa算法。

    Csr是證書請求文件,用于申請證書。在制作csr文件的時,必須使用自己的私鑰來簽署申,還可以設定一個密鑰。

    crt是CA認證后的證書文,(windows下面的,其實是crt),簽署人用自己的key給你簽署的憑證。?

    ?

    1.key的生成?

    opensslgenrsa -des3 -out server.key 2048?

    這樣是生成rsa私鑰,des3算法,openssl格式,2048位強度。server.key是密鑰文件名。為了生成這樣的密鑰,需要一個至少四位的密碼。可以通過以下方法生成沒有密碼的key:

    opensslrsa -in server.key -out server.key?

    ?

    server.key就是沒有密碼的版本了。?

    ?

    2.生成CA的crt

    opensslreq -new -x509 -key server.key -out ca.crt -days3650?

    生成的ca.crt文件是用來簽署下面的server.csr文件。?

    ?

    3.csr的生成方法

    opensslreq -new -key server.key -outserver.csr?

    需要依次輸入國家,地區,組織,email。最重要的是有一個common name,可以寫你的名字或者域名。如果為了https申請,這個必須和域名吻合,否則會引發瀏覽器警報。生成的csr文件交給CA簽名后形成服務端自己的證書。?

    ?

    4.crt生成方法

    CSR文件必須有CA的簽名才可形成證書,可將此文件發送到verisign等地方由它驗證,要交一大筆錢,何不自己做CA呢。

    opensslx509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key-CAcreateserial -out server.crt

    輸入key的密鑰后,完成證書生成。-CA選項指明用于被簽名的csr證書,-CAkey選項指明用于簽名的密鑰,-CAserial指明序列號文件,而-CAcreateserial指明文件不存在時自動生成。

    最后生成了私用密鑰:server.key和自己認證的SSL證書:server.crt

    證書合并:

    catserver.key server.crt > server.pem


    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的如何生成CA证书的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。