Https、OpenSSL自建CA證書及簽發證書、nginx單向認證、雙向認證及使用Java訪問
阿新 • • 發佈:2017-08-14
1.5 image echo create etc 保存 config openss ima
0.環境
安裝了nginx,安裝了openssl
1.配置和腳本
先創建一個demo目錄(位置自己選擇,我選擇建在nginx的目錄下):
mkdir /etc/nginx/ca-demo cd /etc/nginx/ca-demo
修改SSL配置openssl.cnf(也可能是openssl.conf,不知道在哪可以用find -name / openssl.cnf查找)
將dir屬性改成你上一步自建的目錄,不要用相對路徑,會踩坑,保存,如圖:
我喜歡自動化,所以寫了三個如下腳本,可以直接使用:
ca.sh:
#!/bin/bash #Create directory hierarchy.創建目錄結構touch index.txt serial chmod 666 index.txt serial echo 01 > serial mkdir -p newcerts private
#生成RSA密鑰對 openssl genrsa -des3 -out ./private/cakey.pem 2048 #openssl req -new -days 365 -key ./private/cakey.pem -out ca.csr #openssl ca -selfsign -in ca.csr -out ca.crt # one step.一步生成csr,crt,直接10年使用期 openssl req-new -x509 -days 3650 -key ./private/cakey.pem -out ca.crt
server.sh:
#!/bin/bash # 簽發服務器證書 mkdir server openssl genrsa -out ./server/server.key openssl req -new -key ./server/server.key -out ./server/server.csr openssl ca -in ./server/server.csr -cert ./ca.crt -keyfile ./private/cakey.pem -out ./server/server.crt -days 3650
client.sh:
#!/bin/bash # 簽發client證書 mkdir client openssl genrsa -des3 -out ./client/client.key 2048 openssl req -new -key ./client/client.key -out ./client/client.csr openssl ca -in ./client/client.csr -cert ./ca.crt -keyfile ./private/cakey.pem -out ./client/client.crt -config "/etc/ssl/openssl.cnf" openssl pkcs12 -export -clcerts -in ./client/client.crt -inkey ./client/client.key -out ./client/client.p12
以上三個腳本都可以在 https://github.com/dreamingodd/CA-generation-demo 找到
將以上三個腳本復制到自建demo目錄中,如下所示:
加入運行權限:
chmod +x *.sh
結果如下:
未完待續...
To be Continued...
Https、OpenSSL自建CA證書及簽發證書、nginx單向認證、雙向認證及使用Java訪問