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

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

 

1、介紹

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

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

 

 能夠參考:github

   SSL證書_百度百科 算法

   X509 證書詳解 數據庫

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

【OpenSSL】建立證書 ★ dom

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

利用CA私鑰和證書建立中間CA★ 工具

  關於openssl和X509 V3證書 

OpenSSL-證書鏈★ 

  理解證書和證書鏈

  理解證書和證書鏈(二)

  理解證書和證書鏈(三)

 

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

https://github.com/chris2511/xca

 

2、建立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 自動備份簽發的證書的文件夾

3、建立中間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證書可信任, 這個證書鏈就是可信任的了

4、頒發證書

 頒發證書以前, 被頒發的證書須要 生成本身的私鑰和證書請求文件

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

5、附配置

 

################################################################
# 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

 

 好了, 作個記錄

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

 

1、介紹

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

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

 

 能夠參考:

   SSL證書_百度百科 

   X509 證書詳解 

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

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

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

  關於openssl和X509 V3證書 

OpenSSL-證書鏈★ 

 

 

2、建立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 自動備份簽發的證書的文件夾

3、建立中間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證書可信任, 這個證書鏈就是可信任的了

4、頒發證書

 頒發證書以前, 被頒發的證書須要 生成本身的私鑰和證書請求文件

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

5、附配置

 

################################################################
# 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

 

 好了, 作個記錄

相關文章
相關標籤/搜索