1. 創(chuàng)建 openssl 配置文件 openss.cnf
創(chuàng)建目錄
mkdir certscd certs
- 創(chuàng)建 openssl 配置文件 openss.cnf
[req_distinguished_name]countryName = CNcountryName_default = CNstateOrProvinceName = GuangDongstateOrProvinceName_default = GuangDonglocalityName = ShenZhenlocalityName_default = ShenZhenorganizationUnitName = oliveorganizationUnitName_default = olivecommonName = mynexus3.comcommonName_default = mynexus3.comcommonName_max = 64[req]req_extensions = v3_reqdistinguished_name = req_distinguished_name[v3_req]basicConstraints = CA:FALSEkeyUsage = critical,digitalSignature,keyAgreementsubjectAltName = @alt_names[alt_names]DNS.1 = mynexus3.comDNS.2 = *.mynexus3.com
解析
- Country Name (2 letter code) [XX]:CN
- State or Province Name (full name) []:省份拼音,比如 GuangDong
- Locality Name (eg, city) [Default City]:地市拼音,比如 ShenZhen
- Organization Name (eg, company) [Default Company Ltd]:公司名稱拼音,比如 BaiDu
- Organizational Unit Name (eg, section) []:你所在公司的部門拼音,比如 YanFa
- Common Name (eg, your name or your server’s hostname) []:域名或者ip,比如 192.168.12.10
- Email Address []:郵箱地址,比如 xxxxx@sina.com
2. 生成證書私鑰
openssl genrsa -out ca.key 2048
參數(shù)說明:
3. 生成證書請求文件(CSR)
CSR 是 Certificate Signing Request 的縮寫,即證書簽名請求,這不是證書,只是包含申請證書的基本信息。生成證書時要把這個提交給權(quán)威的證書頒發(fā)機(jī)構(gòu),頒發(fā)機(jī)構(gòu)審核通過之后,再根據(jù)這些申請信息生成相應(yīng)的證書。
openssl req -new -out ca.csr -key ca.key -config openssl.cnf
參數(shù)說明:
- req 產(chǎn)生證書簽發(fā)申請命令
- -new 新的申請
- -key 輸入的 key 文件,即私鑰
- -out 輸出為 CSR 文件,即證書請求文件
4. 生成證書
CRT 是 certificate 的縮寫,即證書
openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt -extensions v3_req -extfile openssl.cnf
X.509 是一種證書格式。對 X.509 證書來說,認(rèn)證者總是CA或由CA指定的人,一份 X.509 證書是一些標(biāo)準(zhǔn)字段的集合,這些字段包含有關(guān)用戶或設(shè)備及其相應(yīng)公鑰的信息。X.509 的證書文件,一般以.crt結(jié)尾,根據(jù)該文件的內(nèi)容編碼格式,可以分為以下二種格式:
- PEM(Privacy Enhanced Mail),打開看文本格式,以”—–BEGIN…“開頭,”—–END…”結(jié)尾,內(nèi)容是 BASE64 編碼。Apache 和 *NIX 服務(wù)器偏向于使用這種編碼格式。
- DER(Distinguished Encoding Rules),打開看是二進(jìn)制格式,不可讀。Java 和 Windows 服務(wù)器偏向于使用這種編碼格式。