openssl生成證書+安裝+使用例項
阿新 • • 發佈:2019-01-11
openssl生成證書主要為以下三步:
1. 生成CA證書
2. 生成Server證書
3.生成Client證書
一. 安裝openssl(windows)
1.1 選擇32位或者64位合適的版本下載
1.2 設定環境變數,變數值為應用安裝目錄下的bin目錄,如C:\OpenSSL-Win64\bin
二. 證書生成
進入命令列使用openssl生成證書
2.1 CA 證書生成
建立私鑰:
OpenSSL> genrsa -out ca-key.pem 2048
建立證書請求:
OpenSSL> req -new -out ca-req.csr -key ca-key.pem
建立CA自簽證書
OpenSSL> x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 365
OpenSSL> pkcs12 -export -clcerts -in ca-cert.pem -inkey ca-key.pem -out ca.p12
建立CA證書生成的檔案
2.2 Server 證書生成
建立私鑰
OpenSSL> genrsa -out server-key.pem 2048
建立證書請求
OpenSSL> req -new -out server-req.csr -key server-key.pem
建立自籤Server證書
OpenSSL> x509 -req -in server-req.csr -out server-cert.pem -signkey server-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 365
將證書匯出成瀏覽器支援的.p12檔案(在此輸入的密碼為證書安裝時的密碼)
OpenSSL> pkcs12 -export -clcerts -in server-cert.pem -inkey server-key.pem -out server.p12
建立Server證書生成的檔案
2.3 Client證書生成
建立私鑰
OpenSSL> genrsa -out client-key.pem 2048
建立證書請求
OpenSSL> req -new -out client-req.csr -key client-key.pem
建立自籤Client證書
OpenSSL> x509 -req -in client-req.csr -out client-cert.pem -signkey client-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 365
將證書匯出成瀏覽器支援的.p12檔案(在此輸入的密碼為證書安裝時的密碼)
OpenSSL> pkcs12 -export -clcerts -in client-cert.pem -inkey client-key.pem -out client.p12
建立Client證書生成的檔案
3. 證書安裝與使用
3.1 安裝client.p12客戶端證書檔案
進入客戶端瀏覽器檢視安裝的證書
3.2 搭建伺服器並使用證書(此處服務是為node搭建的伺服器)
// 載入 https 模組
const https = require('https')
// 載入 fs 模組
const fs = require('fs')
// 讀取伺服器金鑰與證書
const options = {
key: fs.readFileSync('server-key.pem'),
cert: fs.readFileSync('server-cert.pem')
}
// 建立伺服器
https.createServer(options, (req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain;charset=utf8'})
res.write('Hello World!')
res.end()
}).listen(8080, () => {
console.log('Server is running……')
})
輸入https://ip地址(域名)訪問搭建的伺服器,因證書是自建的,瀏覽器器會顯示連線不安全,需將自建證書請加信任
火狐瀏覽器訪問: