使用OpenSsl自己CA根證書,二級根證書和頒發證書(親測步驟)


---恢復內容開始---

 

一、介紹

 企業自用, 到證書機構簽發證書的費用和時間等都可以省下.....

SSl證書的背景功用.......(省略萬字,不廢話)

 

 可以參考:

   SSL證書_百度百科 

   X509 證書詳解 

   openssl 證書請求和自簽名命令req詳解 

【OpenSSL】創建證書 ★ 

   使用openssl創建自簽名證書及部署到IIS教程 

利用CA私鑰和證書創建中間CA★ 

  關於openssl和X509 V3證書 

OpenSSL-證書鏈★ 

  理解證書和證書鏈

  理解證書和證書鏈(二)

  理解證書和證書鏈(三)

 

開源的可視化管理工具 :)

https://github.com/chris2511/xca

 

二、創建CA根

1.創建 Root CA

創建 root 文件夾, 在root文件夾上級建立配置文件 openssl.cnf 

a.創建 root 密鑰

命令:

openssl genrsa -des3 -out root/private.pem 4096

然后要輸入 密碼, 用以保護 私鑰.

 

b.創建自簽名證書

命令:

openssl req -x509 -new -key root/private.pem -out root/root.crt -days 36500 -config ../openssl.cnf

輸入上一步密鑰的密碼 , 然后填寫要簽名的各個項目 (直接回車使用默認信息, 輸入`.`(英文句號)此項留空不填信息)

 至此,自簽名證書就生成好了.

 c.創建要頒發證書時要用到的文件和文件夾   (這些 都在 openssl.cnf 里配置的)

             index.txt  OpenSSL在創建自簽證書時會向該文件里寫下索引

             database.txt  OpenSSL會模擬數據庫將一些敏感信息寫在該文件里

             serial.txt  創建該文件后,請編輯在第一行寫下 01

             new_certs 文件夾,openssl 自動備份簽發的證書的文件夾

三、創建中間CA證書

創建 ca 文件夾, 重復上面的操作.

這里仍然需要將創建root CA用的配置文件拷貝到中間CA證書目錄下,該配置文件在生成CSR文件和以后簽發client文件時都要用到

1.創建私鑰

openssl genrsa -des3 -out ca/private.pem 2048

輸入保護密鑰的密碼

2.創建自簽名證書

openssl req -new -x509 -key ca/private.pem -out ca/cert.crt -config openssl.cnf

密鑰的密碼 , 填寫要簽名的各個項目 (直接回車使用默認信息, 輸入`.`(英文句號)此項留空不填信息

 "A challenge password" 不用填,

"An optional company name" 可以填一下.

 

 要注意的是, 這些字段要與root證書一樣,不然不能通過:

    stateOrProvinceName  州或省名

    organizationName  組織單位名稱

 

3.用 root 證書對證書請求文件簽名

openssl ca -ss_cert ca/cert.crt -cert root/root.crt -keyfile root/private.pem -out ca/cacert.crt -config openssl.cnf
openssl x509 -req -in ca/cert.csr -CA root/root.crt -CAkey root/private.pem -out ca/cacert.crt -days 3650 -set_serial 03 -extfile v3.ext
openssl ca -in ca/cert.csr -cert root/root.crt -keyfile root/private.pem -out ca/cacert.crt -extensions v3_ca -notext -md sha256 -config openssl.cnf

 

 最后把 root CA 的證書 和 中間CA證書 合並, (就是 簡單的放到一個文件中就行了) 

copy ca\cacert.crt + root\root.crt ca_chain.crt

 https 握手, 服務器會先驗證證書中的第一個, 無法驗證信任就會驗證其上一級(就是證書里面的第二個)第二個無法驗證就繼續驗證第三個...直到root證書,如果root證書可信任, 這個證書鏈就是可信任的了

四、頒發證書

 頒發證書之前, 被頒發的證書需要 生成自己的私鑰和證書請求文件

1.生成域名的私鑰

openssl genrsa -out mydomain.key 2048

2.用此私鑰生成證書請求文件 

openssl req -new -key mydomain.pem -out mydomain.csr -days 365 -config openssl.cnf

填寫請求簽名的信息

 Common Name 可以填寫域名('xxx.com' 或'*.xxx.com'等), 就是頒發域名證書了

3.也可以用一條命令同時生成私鑰和證書請求文件

openssl req -new -keyout mydomain.pem -out mydomain.csr  -config openssl.cnf

同樣需要填寫信息

 

3.查看證書請求內容

openssl req -in client.req -noout -text -subject

 

 

4.使用CA證書對證書請求文件簽名,生成頒發的證書

openssl ca -in mydomain.csr -cert ca/cacert.pem -keyfile ca/cakey.pem -out mydomain.crt -config openssl.cnf

 

 

將私鑰和證書轉換成 .pfx 格式(iis等使用)

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

五、附配置

 

################################################################
# openssl example configuration file.
# This is mostly used for generation of certificate requests.
#################################################################

[default]          # The default ca section
name = root        # 自定義變量(可以放在開頭也可以放在中間), 使用方式: $name , ${name}
default_ca = CA_default
name_opt = CA_default
cert_opt = CA_default

#################################################################

[ CA_default ]
dir=.                            # 自定義變量(可以放在開頭也可以放在中間), 使用方式: $dir , ${dir}
                                 # 這是第一個openssl目錄結構中的目錄
certs=$dir                       # Where the issued certs are kept(已頒發的證書路徑,即CA或自簽的)
                                 # 這是第二個openssl目錄結構中的目錄,但非必須
crl_dir= $dir/crl                # Where the issued crl are kept(已頒發的crl存放目錄)
                                 # 這是第三個openssl目錄結構中的目錄
database= $dir/index.txt         # database index file
#unique_subject = no             # 設置為yes則database文件中的subject列不能出現重復值
                                 # 即不能為subject相同的證書或證書請求簽名
                                 # 建議設置為no,但為了保持老版本的兼容性默認是yes
new_certs_dir= $dir/new_certs    # default place for new certs(將來頒發的證書存放路徑)
                                 # 這是第四個openssl目錄結構中的目錄
serial= $dir/serial.txt          # The current serial number(提供序列號的文件,如:創建收輸入`01`)
crl= $dir/crl.pem                # The current CRL當前crl序列號)
private_key= $dir/CA/private.key # The private key(簽名時需要的私鑰,即CA自己的私鑰)
certificate=$dir/CA/$name        # The CA certificate(CA自己的證書文件)
RANDFILE= $dir/.rand             # private random number file(提供隨機數種子的文件)
x509_extensions = usr_cert       # The extentions to add to the cert(添加到證書中的擴展項)
## 以下兩行是關於證書展示格式的,雖非必須項,但推薦設置。一般就如下格式不用修改
name_opt    = ca_default         # Subject Name options
cert_opt    = ca_default         # Certificate field options
## 以下是copy_extensions擴展項,需謹慎使用
# copy_extensions = copy         # 生成證書時擴展項的copy行為,可設置為none/copy/copyall
                                 # 不設置該name時默認為none
                                 # 建議簡單使用時設置為none或不設置,且強烈建議不要設置為copyall
# crl_extensions    = crl_ext
default_days= 3650               # how long to certify for(默認的證書有效期)
default_crl_days= 30             # how long before next CRL(CRL的有效期)
default_md= sha256               # which message digest to use(默認摘要算法)
preserve= no                     # keep passed DN ordering(Distinguished Name順序,一般設置為no
                                 # 設置為yes僅為了和老版本的IE兼容

# A few different ways of specifying how closely the request should
# conform to the details of the CA

policy= policy_match             # For the CA policy(證書匹配策略,此處表示引用[ policy_match ]的策略)

[ policy_match ]
countryName= match               # match 表示請求中填寫的該字段信息要和CA證書中的匹配
stateOrProvinceName= optional
organizationName= optional
organizationalUnitName= optional # optional表示該字段信息可提供可不提供
commonName= supplied             # supplied表示該字段信息必須提供
emailAddress= optional

# For the `anything' policy
# At this point in time, you must list all acceptable `object'
# types
# 以下是沒被引用的策略擴展,只要是沒被引用的都是被忽略的
[ policy_anything ]
countryName = optional
stateOrProvinceName= optional
localityName= optional
organizationName = optional
organizationalUnitName = optional
commonName= supplied
emailAddress= optional

# 以下是添加的擴展項usr_cert的內容*/
[ usr_cert ]
basicConstraints=critical,CA:TRUE,pathlen:2         # 基本約束,CA:FALSE表示頒發的證書不能作為CA證書,即不能給其他人頒發證書
keyUsage = critical,keyCertSign,cRLSign,digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment  # 指定證書的目的,也就是限制證書的用法用途
#subjectAltName=email:copy,email:my@other.address  #這個參數很重要,現在被很多地方用來簽署多域名證書,但它除了DNS,還可指定email, IP,DN等
## 除了上面兩個擴展項可能會修改下,其余的擴展項別管了,如下面的
nsComment  = "OpenSSL Generated Certificate"
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer

##  req相關的段
[ req ]
default_bits = 2048                             # 生成證書請求時用到的私鑰的密鑰長度
default_md = sha256                             # 證書請求簽名時的單向加密算法
default_keyfile= privkey.pem                    # 默認新創建的私鑰存放位置,
                                                # 如-new選項沒指定-key時會自動創建私鑰
                                                # -newkey選項也會自動創建私鑰
distinguished_name  = req_distinguished_name    # 可識別的字段名(常被簡稱為DN)
                                                # 引用req_distinguished_name段的設置
x509_extensions = v3_ca                         # 加入到自簽證書中的擴展項
#req_extensions = v3_req                        # 加入到證書請求中的擴展項
attributes  = req_attributes                    # 證書請求的屬性,引用req_attributes段的設置,可以不設置它
encrypt_key = no                                # 自動生成的私鑰文件要加密否?一般設置no,和-nodes選項等價
## 輸入和輸出私鑰文件的密碼,如果該私鑰文件有密碼,不寫該設置則會提示輸入
#input_password = secret
#output_password = secret
#prompt = yes | no              # 設置為no將不提示輸入DN field,而是直接從配置文件中讀取,需要同時設置DN默認值,否則創建證書請求時將出錯
utf8 = yes
string_mask = utf8only

[ req_distinguished_name ]
## 以下項均可指定可不指定,但ca段的policy中指定為match和supplied一定要指定
## 以下選項都可以自定義,如countryName = C,commonName = CN
countryName= 國名(C)(2個字母代碼)            # 國家名(C)
countryName_default = "CN"                   # 默認的國家名
countryName_min= 2                           # 填寫的國家名的最小字符長度
countryName_max = 2                          # 填寫的國家名的最大字符長度
stateOrProvinceName= 省/州名(S)(全名)       # 省份(S)
stateOrProvinceName_default = "SH"
localityName = 城市/地點名稱(LT)              # 城市(LT)
localityName_default = "SH"
organizationName = 公司/組織名稱(ON)          # 公司(ON)
organizationName_default = "Foxcall"
organizationalUnitName  = 部門/單位名稱(OU)   # 部門(OU)
organizationalUnitName_default = "Foxcall"
## 以下的commonName(CN)一般必須給,如果作為CA,那么需要在ca的policy中定義CN = supplied
## CN定義的是將要申請SSL證書的域名或子域名或主機名。
## 例如要為zhonghua.com申請ssl證書則填寫zhonghua.com,而不能填寫www.zhonghua.com
## 要為www.zhonghua.com申請SSL則填寫www.zhonghua.com
## CN必須和將要訪問的網站地址一樣,否則訪問時就會給出警告
## 該項要填寫正確,否則該請求被簽名后證書中的CN與實際環境中的CN不對應,將無法提供證書服務
commonName = 域名/主機名稱(CN)                # 主機名(CN)
commonName_max = 64
commonName_default = "Foxcall"
emailAddress = 電子郵件地址(E)                # Email地址,很多時候不需要該項
emailAddress_max = 40
emailAddress_default = "foxcall@foxcallcrm.com"

[ req_attributes ]   # 該段是為了某些特定軟件的運行需要而設定的
                     # 現在一般都不需要提供challengepassword
                     # 所以該段幾乎用不上
                     # 所以不用管這段
challengePassword = A challenge password
challengePassword_min = 4
challengePassword_max = 20
unstructuredName = An optional company name
[ v3_req ]
## Extensions to add to a certificate request
basicConstraints = critical,CA:true
keyUsage = critical,keyCertSign,cRLSign  # nonRepudiation, digitalSignature, keyEncipherment
subjectKeyIdentifier=hash
[ v3_ca ]
## Extensions for a typical CA
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
basicConstraints = CA:true
keyUsage = cRLSign, keyCertSign  # 典型的CA證書的使用方法設置,由於測試使用所以注釋了
                                   # 如果真的需要申請為CA, 么該設置可以如此配置
View Code

 

 好了, 做個記錄

---恢復內容開始---

 

一、介紹

 企業自用, 到證書機構簽發證書的費用和時間等都可以省下.....

SSl證書的背景功用.......(省略萬字,不廢話)

 

 可以參考:

   SSL證書_百度百科 

   X509 證書詳解 

   openssl 證書請求和自簽名命令req詳解 

   使用openssl創建自簽名證書及部署到IIS教程 

利用CA私鑰和證書創建中間CA★ 

  關於openssl和X509 V3證書 

OpenSSL-證書鏈★ 

 

 

二、創建CA根

1.創建 Root CA

創建 root 文件夾, 在root文件夾上級建立配置文件 openssl.cnf 

a.創建 root 密鑰

命令:

openssl genrsa -des3 -out root/private.pem 4096

然后要輸入 密碼, 用以保護 私鑰.

 

b.創建自簽名證書

命令:

openssl req -x509 -new -key root/private.pem -out root/root.crt -days 36500 -config ../openssl.cnf

輸入上一步密鑰的密碼 , 然后填寫要簽名的各個項目 (直接回車使用默認信息, 輸入`.`(英文句號)此項留空不填信息)

 至此,自簽名證書就生成好了.

 c.創建要頒發證書時要用到的文件和文件夾   (這些 都在 openssl.cnf 里配置的)

             index.txt  OpenSSL在創建自簽證書時會向該文件里寫下索引

             database.txt  OpenSSL會模擬數據庫將一些敏感信息寫在該文件里

             serial.txt  創建該文件后,請編輯在第一行寫下 01

             new_certs 文件夾,openssl 自動備份簽發的證書的文件夾

三、創建中間CA證書

創建 ca 文件夾, 重復上面的操作.

這里仍然需要將創建root CA用的配置文件拷貝到中間CA證書目錄下,該配置文件在生成CSR文件和以后簽發client文件時都要用到

1.創建私鑰

openssl genrsa -des3 -out ca/private.pem 2048

輸入保護密鑰的密碼

2.創建自簽名證書

openssl req -new -x509 -key ca/private.pem -out ca/cert.crt -config openssl.cnf

密鑰的密碼 , 填寫要簽名的各個項目 (直接回車使用默認信息, 輸入`.`(英文句號)此項留空不填信息

 "A challenge password" 不用填,

"An optional company name" 可以填一下.

 

 要注意的是, 這些字段要與root證書一樣,不然不能通過:

    stateOrProvinceName  州或省名

    organizationName  組織單位名稱

 

3.用 root 證書對證書請求文件簽名

openssl ca -ss_cert ca/cert.crt -cert root/root.crt -keyfile root/private.pem -out ca/cacert.crt -config openssl.cnf
openssl x509 -req -in ca/cert.csr -CA root/root.crt -CAkey root/private.pem -out ca/cacert.crt -days 3650 -set_serial 03 -extfile v3.ext
openssl ca -in ca/cert.csr -cert root/root.crt -keyfile root/private.pem -out ca/cacert.crt -extensions v3_ca -notext -md sha256 -config openssl.cnf

 

 最后把 root CA 的證書 和 中間CA證書 合並, (就是 簡單的放到一個文件中就行了) 

copy ca\cacert.crt + root\root.crt ca_chain.crt

 https 握手, 服務器會先驗證證書中的第一個, 無法驗證信任就會驗證其上一級(就是證書里面的第二個)第二個無法驗證就繼續驗證第三個...直到root證書,如果root證書可信任, 這個證書鏈就是可信任的了

四、頒發證書

 頒發證書之前, 被頒發的證書需要 生成自己的私鑰和證書請求文件

1.生成域名的私鑰

openssl genrsa -out mydomain.key 2048

2.用此私鑰生成證書請求文件 

openssl req -new -key mydomain.pem -out mydomain.csr -days 365 -config openssl.cnf

填寫請求簽名的信息

 Common Name 可以填寫域名('xxx.com' 或'*.xxx.com'等), 就是頒發域名證書了

3.也可以用一條命令同時生成私鑰和證書請求文件

openssl req -new -keyout mydomain.pem -out mydomain.csr  -config openssl.cnf

同樣需要填寫信息

 

3.查看證書請求內容

openssl req -in client.req -noout -text -subject

 

 

4.使用CA證書對證書請求文件簽名,生成頒發的證書

openssl ca -in mydomain.csr -cert ca/cacert.pem -keyfile ca/cakey.pem -out mydomain.crt -config openssl.cnf

 

 

將私鑰和證書轉換成 .pfx 格式(iis等使用)

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

五、附配置

 

################################################################
# openssl example configuration file.
# This is mostly used for generation of certificate requests.
#################################################################

[default]          # The default ca section
name = root        # 自定義變量(可以放在開頭也可以放在中間), 使用方式: $name , ${name}
default_ca = CA_default
name_opt = CA_default
cert_opt = CA_default

#################################################################

[ CA_default ]
dir=.                            # 自定義變量(可以放在開頭也可以放在中間), 使用方式: $dir , ${dir}
                                 # 這是第一個openssl目錄結構中的目錄
certs=$dir                       # Where the issued certs are kept(已頒發的證書路徑,即CA或自簽的)
                                 # 這是第二個openssl目錄結構中的目錄,但非必須
crl_dir= $dir/crl                # Where the issued crl are kept(已頒發的crl存放目錄)
                                 # 這是第三個openssl目錄結構中的目錄
database= $dir/index.txt         # database index file
#unique_subject = no             # 設置為yes則database文件中的subject列不能出現重復值
                                 # 即不能為subject相同的證書或證書請求簽名
                                 # 建議設置為no,但為了保持老版本的兼容性默認是yes
new_certs_dir= $dir/new_certs    # default place for new certs(將來頒發的證書存放路徑)
                                 # 這是第四個openssl目錄結構中的目錄
serial= $dir/serial.txt          # The current serial number(提供序列號的文件,如:創建收輸入`01`)
crl= $dir/crl.pem                # The current CRL當前crl序列號)
private_key= $dir/CA/private.key # The private key(簽名時需要的私鑰,即CA自己的私鑰)
certificate=$dir/CA/$name        # The CA certificate(CA自己的證書文件)
RANDFILE= $dir/.rand             # private random number file(提供隨機數種子的文件)
x509_extensions = usr_cert       # The extentions to add to the cert(添加到證書中的擴展項)
## 以下兩行是關於證書展示格式的,雖非必須項,但推薦設置。一般就如下格式不用修改
name_opt    = ca_default         # Subject Name options
cert_opt    = ca_default         # Certificate field options
## 以下是copy_extensions擴展項,需謹慎使用
# copy_extensions = copy         # 生成證書時擴展項的copy行為,可設置為none/copy/copyall
                                 # 不設置該name時默認為none
                                 # 建議簡單使用時設置為none或不設置,且強烈建議不要設置為copyall
# crl_extensions    = crl_ext
default_days= 3650               # how long to certify for(默認的證書有效期)
default_crl_days= 30             # how long before next CRL(CRL的有效期)
default_md= sha256               # which message digest to use(默認摘要算法)
preserve= no                     # keep passed DN ordering(Distinguished Name順序,一般設置為no
                                 # 設置為yes僅為了和老版本的IE兼容

# A few different ways of specifying how closely the request should
# conform to the details of the CA

policy= policy_match             # For the CA policy(證書匹配策略,此處表示引用[ policy_match ]的策略)

[ policy_match ]
countryName= match               # match 表示請求中填寫的該字段信息要和CA證書中的匹配
stateOrProvinceName= optional
organizationName= optional
organizationalUnitName= optional # optional表示該字段信息可提供可不提供
commonName= supplied             # supplied表示該字段信息必須提供
emailAddress= optional

# For the `anything' policy
# At this point in time, you must list all acceptable `object'
# types
# 以下是沒被引用的策略擴展,只要是沒被引用的都是被忽略的
[ policy_anything ]
countryName = optional
stateOrProvinceName= optional
localityName= optional
organizationName = optional
organizationalUnitName = optional
commonName= supplied
emailAddress= optional

# 以下是添加的擴展項usr_cert的內容*/
[ usr_cert ]
basicConstraints=critical,CA:TRUE,pathlen:2         # 基本約束,CA:FALSE表示頒發的證書不能作為CA證書,即不能給其他人頒發證書
keyUsage = critical,keyCertSign,cRLSign,digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment  # 指定證書的目的,也就是限制證書的用法用途
#subjectAltName=email:copy,email:my@other.address  #這個參數很重要,現在被很多地方用來簽署多域名證書,但它除了DNS,還可指定email, IP,DN等
## 除了上面兩個擴展項可能會修改下,其余的擴展項別管了,如下面的
nsComment  = "OpenSSL Generated Certificate"
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer

##  req相關的段
[ req ]
default_bits = 2048                             # 生成證書請求時用到的私鑰的密鑰長度
default_md = sha256                             # 證書請求簽名時的單向加密算法
default_keyfile= privkey.pem                    # 默認新創建的私鑰存放位置,
                                                # 如-new選項沒指定-key時會自動創建私鑰
                                                # -newkey選項也會自動創建私鑰
distinguished_name  = req_distinguished_name    # 可識別的字段名(常被簡稱為DN)
                                                # 引用req_distinguished_name段的設置
x509_extensions = v3_ca                         # 加入到自簽證書中的擴展項
#req_extensions = v3_req                        # 加入到證書請求中的擴展項
attributes  = req_attributes                    # 證書請求的屬性,引用req_attributes段的設置,可以不設置它
encrypt_key = no                                # 自動生成的私鑰文件要加密否?一般設置no,和-nodes選項等價
## 輸入和輸出私鑰文件的密碼,如果該私鑰文件有密碼,不寫該設置則會提示輸入
#input_password = secret
#output_password = secret
#prompt = yes | no              # 設置為no將不提示輸入DN field,而是直接從配置文件中讀取,需要同時設置DN默認值,否則創建證書請求時將出錯
utf8 = yes
string_mask = utf8only

[ req_distinguished_name ]
## 以下項均可指定可不指定,但ca段的policy中指定為match和supplied一定要指定
## 以下選項都可以自定義,如countryName = C,commonName = CN
countryName= 國名(C)(2個字母代碼)            # 國家名(C)
countryName_default = "CN"                   # 默認的國家名
countryName_min= 2                           # 填寫的國家名的最小字符長度
countryName_max = 2                          # 填寫的國家名的最大字符長度
stateOrProvinceName= 省/州名(S)(全名)       # 省份(S)
stateOrProvinceName_default = "SH"
localityName = 城市/地點名稱(LT)              # 城市(LT)
localityName_default = "SH"
organizationName = 公司/組織名稱(ON)          # 公司(ON)
organizationName_default = "Foxcall"
organizationalUnitName  = 部門/單位名稱(OU)   # 部門(OU)
organizationalUnitName_default = "Foxcall"
## 以下的commonName(CN)一般必須給,如果作為CA,那么需要在ca的policy中定義CN = supplied
## CN定義的是將要申請SSL證書的域名或子域名或主機名。
## 例如要為zhonghua.com申請ssl證書則填寫zhonghua.com,而不能填寫www.zhonghua.com
## 要為www.zhonghua.com申請SSL則填寫www.zhonghua.com
## CN必須和將要訪問的網站地址一樣,否則訪問時就會給出警告
## 該項要填寫正確,否則該請求被簽名后證書中的CN與實際環境中的CN不對應,將無法提供證書服務
commonName = 域名/主機名稱(CN)                # 主機名(CN)
commonName_max = 64
commonName_default = "Foxcall"
emailAddress = 電子郵件地址(E)                # Email地址,很多時候不需要該項
emailAddress_max = 40
emailAddress_default = "foxcall@foxcallcrm.com"

[ req_attributes ]   # 該段是為了某些特定軟件的運行需要而設定的
                     # 現在一般都不需要提供challengepassword
                     # 所以該段幾乎用不上
                     # 所以不用管這段
challengePassword = A challenge password
challengePassword_min = 4
challengePassword_max = 20
unstructuredName = An optional company name
[ v3_req ]
## Extensions to add to a certificate request
basicConstraints = critical,CA:true
keyUsage = critical,keyCertSign,cRLSign  # nonRepudiation, digitalSignature, keyEncipherment
subjectKeyIdentifier=hash
[ v3_ca ]
## Extensions for a typical CA
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
basicConstraints = CA:true
keyUsage = cRLSign, keyCertSign  # 典型的CA證書的使用方法設置,由於測試使用所以注釋了
                                   # 如果真的需要申請為CA, 么該設置可以如此配置
View Code

 

 好了, 做個記錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM