nginx中配置ssl雙向認證詳解

2021-10-05 17:14:00 字數 3106 閱讀 4509

[**]

(需求說明:公司內部一些業務系統對安全性要求比較高,例如mis、bi等,這些業務系統只允許公司內部人員訪問,而且要求瀏覽器要安裝證書登入,對公司入職有需求的人員開通證書,流失的人員登出證書。

沒安裝openssl需要先安裝

vim  /etc/pki/tls/openssl.cnf
下面只列出配置檔案中和自建ca有關的幾個關鍵指令

dir=/etc/pki/ca      #ca的工作目錄

database=$dir/index.txt #簽署證書的資料記錄檔案,下面會生成index這個檔案

new_certs_dir=$dir/newcerts #存放新簽署證書的目錄

serial=$dir/serial #新證書簽署號記錄檔案下,下面會生成serial這個檔案

certificate=$dir/ca.crt #ca的證書路徑,下面會對應生成ca.crt這個證書

private_key=$dir/private/cakey.pem #ca的私鑰路徑,下面會生成這個金鑰

crlnumber = $dir/crlnumber # 吊銷證書用,下面會生成這個檔案

crl = $dir/ca.crl # 當前證書列表,與下面生成的吊銷證書檔名一致

切換到ca的工作目錄

cd /etc/pki/ca
製作ca私鑰

umask077    ###確保證書只有擁有者才可以訪問

openssl genrsa -out private/cakey.pem 2048

製作自簽名證書

openssl req -new -x509 -key private/cakey.pem -out ca.crt
生成資料記錄檔案,生成簽署號記錄檔案,給檔案乙個初始號。

注意commonname = aaa.com(對應網域名稱) ###這個填網域名稱,這個是後面證書的頒發者

touch index.txt

touch serial

touch crlnumber ###登出證書用

echo

'01'

> serial

echo

'01'

> crlnumber

openssl ca -gencrl -crldays3650 -out ca.crl # 產生crl檔案,供吊銷證書使用

自建ca完成

建立存放伺服器證書資料夾

cd /etc/pki/ca;

mkdir server;

cd server

製作伺服器端私鑰

umask077

openssl genrsa -out server.key 1024

製作伺服器端證書申請指定使用sha512演算法簽名(預設使用sha1演算法)

openssl req -new -key server.key -sha512 -out server.csr
簽署證書,3650是指證書有效期為10年

openssl ca -in server.csr -out server.crt -days 3650
伺服器證書準備完成

建立存放客服端證書的資料夾

cd /etc/pki/ca;

mkdir client;

cd client

製作客戶端私鑰

umask077

openssl genrsa -out client.key 1024

製作客戶端證書申請

openssl req -new -key client.key -out client.csr
簽署證書,有效期為10年

openssl ca -in client.csr -out client.crt -days 3650
注意事項:

製作證書時會提示輸入密碼,設定密碼可選,伺服器證書和客戶端證書密碼可以不相同。

伺服器證書和客戶端證書製作時提示輸入省份、城市、網域名稱資訊等,需保持一致,commonname這個需要不同。

注意:

nginx編譯的時候要帶上–with-http_ssl_module選項

server

}

將文字格式的證書轉換成可以匯入瀏覽器的證書

cd /etc/pki/ca/client

openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12

#sz client.p12到windows,然後把client.p12匯入到瀏覽器的個人證書裡,重啟瀏覽器,匯入正常就能正常訪問,否則返回400沒有證書被傳送錯誤。

例如要登出名字為ceshi的證書

cat index.txt | grep ceshi 類似如下

v 261106092713  04   unknown /c=cn/st=gd/o=cky/ou=yw/cn=ceshi/[email protected]
可得 值為04

cd  /etc/ssl/newcerts

openssl ca -revoke 04.pem ##完成登出,證書的v會變為r

openssl ca -gencrl -crldays 3650 -out ca.crl ###更新ca.crl檔案

/usr/local/nginx/sbin/nginx -s reload ####重啟nginx ,吊銷證書生效

Nginx配置客戶端SSL雙向認證

安裝需求環境 server ssl on ssl certificate uuht ca ca.crt https證書公鑰 ssl certificate key uuht ca ca.key https私鑰 ssl client certificate uuht ca cacert.pem 啟用s...

tomcat配置ssl雙向認證

接上篇tomcat ssl單向認證 url 本文在單向認證的基礎上完成雙向認證配置。1 使用以下命令生成客戶端證書,並將此證書安裝到客戶端 此證書請安裝到個人目錄下 keytool genkey v alias client1 keyalg rsa storetype pkcs12 keysize ...

Java配置SSL雙向認證

首先,需求是編寫後台介面,供移動端呼叫,並實現雙向認證。由於沒有頁面,無需花錢申請證書。用自己生成的證書進行自認證。證書不是非要在執行的伺服器上生成,隨便一台機器都可以,建立證書有多種方式,例如openssl和jdk自帶的keytool。這裡使用keytool。keytool 一 生成伺服器端金鑰庫...