亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解如何使用openssl創(chuàng)建自簽名證書

 更新時間:2023年04月25日 14:35:14   作者:飛魚科技  
這篇文章主要為大家介紹了詳解如何使用openssl創(chuàng)建自簽名證書示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

概覽&證書的結構&證書驗簽

創(chuàng)建根證書

創(chuàng)建根密鑰 ca.key.pem

$ openssl genrsa -des3 -out ca/ca.key.pem 4096
Generating RSA private key, 4096 bit long modulus (2 primes)
.........................................................................................................................................................................++++
..........................................................++++
e is 65537 (0x010001)
Enter pass phrase for ca.key.pem:
Verifying - Enter pass phrase for ca.key.pem:

密碼 123456

我們在這兒使用 RSA 4096, 因為根證書不經(jīng)常使用,為了更好的安全性,我們使用較大的參數(shù)。

備注

生產(chǎn)環(huán)境一般都會有中間證書,我們這兒為了方便省略了中間證書的簽發(fā)流程

-des         使用des cbc模式對私鑰文件進行加密。
-des3         使用des3 cbc模式對私鑰文件進行加密。  需要輸入密碼,秘鑰使用需要輸入密碼
-idea         使用idea cbc模式對私鑰文件進行加密
-out          指定輸出私鑰文件名。

創(chuàng)建根證書 ca.crt.pem

可以不用創(chuàng)建ca.csr.pem文件,直接生成ca.crt.pem文件,如果分成兩步,見下一小節(jié)

現(xiàn)在我們使用剛創(chuàng)建的根密鑰來創(chuàng)建我們的根證書:

$ openssl req -key ca/ca.key.pem -new -x509 -days 3650 -sha256 -out ca/ca.crt -subj '/C=CN/ST=ShanDong/CN=demo.toolbox/O=dzb'
Enter pass phrase for ca.key.pem:

req大致有3個功能:生成證書請求文件、驗證證書請求文件和創(chuàng)建根CA

-config
-key     指定私鑰
-new
-sha256  哈希函數(shù)
-out     輸出的文件
-days    有效期
-subj
subj子參數(shù)詳解:
縮寫	翻譯	     英文對照
C	 國家名稱縮寫	Country Name (2 letter code)
ST	 州或省名稱	State or Province Name (full name)
L	 城市或區(qū)域稱	Locality Name (eg, city)
O	 組織名(或公司名)	Organization Name (eg, company)
OU	 組織單位名稱(或部門名)	Organizational Unit Name (eg, section)
CN	 服務器域名/證書擁有者名稱	Common Name (e.g. server FQDN or YOUR name)
emailAddress	郵件地址	Email

ca.crt的后綴名不加pem,是方便證書安裝的時候,系統(tǒng)可以識別,后續(xù)的crt不需要安裝,所以添加pem后綴,以區(qū)分格式

* 創(chuàng)建根證書 ca.csr.pem ca.crt.pem

$ openssl req -new -key ca/ca.key.pem -sha256 -out ca/ca.csr.pem -subj '/C=CN/ST=ShanDong/CN=demo.toolbox/O=dzb'
Enter pass phrase for ca.key.pem:
$ openssl x509 -req -days 3650 -in ca/ca.csr.pem -signkey ca/ca.key.pem -out ca/ca.crt

查看根證書

查看我們剛剛創(chuàng)建的根證書:

$ openssl x509 -noout -text -in ca/ca.crt

主要檢查上面 -subj 填寫的內(nèi)容和證書的有效期

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            71:34:01:05:eb:4b:f7:8c:09:c6:b0:ad:34:b4:aa:03:93:2b:fc:d8
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = CN, ST = ShanDong, CN = demo.toolbox, O = dzb
        Validity
            Not Before: Apr 24 02:08:43 2023 GMT
            Not After : Apr 21 02:08:43 2033 GMT
        Subject: C = CN, ST = ShanDong, CN = demo.toolbox, O = dzb
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (4096 bit)
                Modulus:
                    00:a7:cb:bb:f2:58:8b:17:60:6d:e3:c8:3f:ed:72:
                      ... ...
                    73:ad:e1:de:d0:5b:d2:1d:3e:0c:55:a3:aa:b5:0c:
                    28:8c:b7
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                FE:D8:0D:72:BE:7B:21:48:1F:14:27:85:3C:9D:16:9E:25:D1:3B:4A
            X509v3 Authority Key Identifier: 
                keyid:FE:D8:0D:72:BE:7B:21:48:1F:14:27:85:3C:9D:16:9E:25:D1:3B:4A
            X509v3 Basic Constraints: critical
                CA:TRUE
    Signature Algorithm: sha256WithRSAEncryption
         24:1e:d8:40:7b:0e:3b:4b:96:51:ff:cb:a0:62:ba:e5:e9:55:
           ... ...
         a2:ba:44:ac:97:da:dc:24:d9:b7:5f:3a:fa:05:16:b8:2f:9e:
         7a:45:89:fa:be:cf:e4:4e

創(chuàng)建服務器證書

現(xiàn)在讓我們使用上面創(chuàng)建的根證書,創(chuàng)建一個我們可以使用的 https 證書。

創(chuàng)建服務器密鑰 server.key.pem

$ openssl genrsa -des3 -out server/server.key.pem 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
.......................................................+++++
................................+++++
e is 65537 (0x010001)
Enter pass phrase for server.key.pem:
Verifying - Enter pass phrase for server.key.pem:

密碼 123456

備注

我們使用 2048 位的 RSA 證書是因為服務器證書會經(jīng)常使用,這樣可以降低CPU的壓力,而且并不影響安全性。

配置文件server.ini

cat > server/server.ini <<EOF
[ req ]
default_bits       = 2048
distinguished_name = req_distinguished_name
req_extensions     = req_ext
[ req_distinguished_name ]
[ req_ext ]
subjectAltName = @alt_names
[alt_names]
DNS.1  = localhost
IP.1   = 127.0.0.1
IP.2   = 169.254.4.58
IP.3   = 172.20.10.2
EOF

DNS可以配置多個

如果只對IP進行簽名,可以如下配置(如果要修改IP,就從這之后進行就行)

cat > server.ini <<EOF
[ req ]
default_bits       = 2048
distinguished_name = req_distinguished_name
req_extensions     = req_ext
[ req_distinguished_name ]
countryName                 = Country Name (2 letter code)
countryName_default         = CN
stateOrProvinceName         = ShangHai
stateOrProvinceName_default = ShangHai
localityName                = Locality Name (eg, city)
localityName_default        = ShangHai
organizationName            = Organization Name (eg, company)
organizationName_default    = dai
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_max              = 64
commonName_default          = server.toolbox
[ req_ext ]
subjectAltName = @alt_names
[alt_names]
IP      = 169.254.4.58
EOF

DNS可以配置多個(對應多個域名),IP也可以配置多個

生成服務器端證書==請求文件== server.csr.pem

$ openssl req -sha256 -new -key server/server.key.pem -config server/server.ini -out server/server.csr.pem -subj '/C=CN/ST=ShangHai/CN=server.toolbox/O=dai'
$ openssl req -sha256 -new -key server/server.key.pem -config server/server.ini -out server/server.csr.pem

第一種方式,通過 -subj配置了證書授權對象的信息

第二種方式,通過配置文件確定,在執(zhí)行過程中,會要求確認,可以在這個過程中進行修改

生成服務器端證書 server.crt.pem

openssl x509 -req -days 3650 \
  -CA ca/ca.crt -CAkey ca/ca.key.pem -CAcreateserial \
  -in server/server.csr.pem -out server/server.crt.pem\
  -extensions req_ext -extfile server/server.ini

一定要加-extfile server/server.ini否則最后簽發(fā)的證書內(nèi)不會有IP和域名的信息

查看服務器端請求文件

$ openssl x509 -noout -text -in server/server.crt.pem
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            61:79:bd:82:c8:1e:2a:27:6f:a9:34:c8:92:f8:54:3f:22:de:80:0b
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = CN, ST = ShanDong, CN = demo.toolbox, O = dzb
        Validity
            Not Before: Apr 24 02:19:50 2023 GMT
            Not After : Apr 21 02:19:50 2033 GMT
        Subject: C = CN, ST = ShangHai, CN = server.toolbox, O = dai
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:b1:de:96:bb:43:4b:fb:46:99:7e:be:61:c1:46:
                      ... ...
                    4a:18:24:b3:79:8c:ff:35:d1:3a:4e:a3:11:02:2c:
                    98:ff
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Alternative Name: 
                DNS:localhost, IP Address:127.0.0.1, IP Address:169.254.4.58, IP Address:172.20.10.2
    Signature Algorithm: sha256WithRSAEncryption
         07:c8:2a:e0:e7:14:86:23:3b:72:38:7f:f8:cc:90:54:f2:fa:
           ... ...
         c2:82:8a:2f:c0:a3:42:78:91:45:92:73:a4:aa:f2:ca:c1:5a:
         58:c0:41:f0:ea:65:43:9e

要檢查授權的DNS和IP

以上就是詳解如何使用openssl創(chuàng)建自簽名證書的詳細內(nèi)容,更多關于openssl創(chuàng)建自簽名證書的資料請關注腳本之家其它相關文章!

相關文章

  • C++ 實現(xiàn)稀疏矩陣的壓縮存儲的實例

    C++ 實現(xiàn)稀疏矩陣的壓縮存儲的實例

    這篇文章主要介紹了C++ 實現(xiàn)稀疏矩陣的壓縮存儲的實例的相關資料,M*N的矩陣,矩陣中有效值的個數(shù)遠小于無效值的個數(shù),且這些數(shù)據(jù)的分布沒有規(guī)律,需要的朋友可以參考下
    2017-07-07
  • 簡單了解設計模式中的裝飾者模式及C++版代碼實現(xiàn)

    簡單了解設計模式中的裝飾者模式及C++版代碼實現(xiàn)

    這篇文章主要介紹了簡單了解設計模式中的裝飾者模式及C++版代碼實現(xiàn),ConcreteComponent的引用(指針)也可以達到修飾的功能,需要的朋友可以參考下
    2016-03-03
  • 深入了解C語言結構化的程序設計

    深入了解C語言結構化的程序設計

    這篇文章主要介紹了C語言編程中程序的一些基本的編寫優(yōu)化技巧,文中涉及到了基礎的C程序內(nèi)存方面的知識,非常推薦!需要的朋友可以參考下
    2021-07-07
  • C語言基于EasyX庫實現(xiàn)有顏色彈跳小球

    C語言基于EasyX庫實現(xiàn)有顏色彈跳小球

    這篇文章主要為大家詳細介紹了C語言基于EasyX庫實現(xiàn)有顏色彈跳小球,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++ 控制臺彈出文件管理對話框案例

    C++ 控制臺彈出文件管理對話框案例

    這篇文章主要介紹了C++ 控制臺彈出文件管理對話框案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 關于C語言中E-R圖的詳解

    關于C語言中E-R圖的詳解

    今天小編就為大家分享一篇關于關于C語言中E-R圖的詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C語言模擬實現(xiàn)動態(tài)通訊錄

    C語言模擬實現(xiàn)動態(tài)通訊錄

    本文主要介紹了C語言模擬實現(xiàn)動態(tài)通訊錄,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C語言?棧與數(shù)組的實現(xiàn)詳解

    C語言?棧與數(shù)組的實現(xiàn)詳解

    棧(stack)又名堆棧,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向一個棧插入新元素又稱作進棧、入?;驂簵?,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素
    2022-04-04
  • C++?右值引用與?const?關鍵字詳解

    C++?右值引用與?const?關鍵字詳解

    C++中的const關鍵字的用法非常靈活,而使用const將大大改善程序的健壯性,const關鍵字是一種修飾符,這篇文章主要介紹了C++?右值引用與?const?關鍵字,需要的朋友可以參考下
    2022-10-10
  • 深度剖析C語言結構體

    深度剖析C語言結構體

    今天小編就為大家分享一篇關于深度剖析C語言結構體,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12

最新評論