首先創(chuàng)建一個(gè)目錄
cd /etc/nginx
mkdir ssl
cd ssl
CA與自簽名
制作CA私鑰
openssl genrsa -out ca.key 2048
制作 CA 根證書(公鑰)
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
注意:
1牍陌、Common Name 可以隨意填寫
2铅歼、其他需要填寫的信息為了避免有誤余佃,都填寫 . 吧
服務(wù)器端證書
制作服務(wù)器端私鑰:
openssl genrsa -out server.pem 1024
openssl rsa -in server.pem -out server.key
生成簽發(fā)請(qǐng)求:
openssl req -new -key server.pem -out server.csr
注意:
1鞠呈、Common Name 得填寫為訪問(wèn)服務(wù)時(shí)的域名玉雾,這里我們用 usb.dev 下面 NGINX 配置會(huì)用到
2翔试、其他需要填寫的信息為了避免有誤,都填寫 . 吧(為了和 CA 根證書匹配)
用CA簽發(fā)
openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server.crt
客戶端證書
與服務(wù)端證書類似
注意:
1复旬、Common Name可以隨意填寫
2垦缅、其他需要填寫的信息為了避免有誤,都填寫 . 吧(為了和 CA 根證書匹配)
至此需要的證書都弄好了驹碍,我們可以開始配置 NGINX 了壁涎。
Nginx配置
server {
listen 443;
server_name usb.dev;
index index.html;
root /data/test/;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_client_certificate /etc/nginx/ssl/ca.crt;
ssl_verify_client on;
}
請(qǐng)求驗(yàn)證
驗(yàn)證過(guò)程可以選擇在其他機(jī)器或是本機(jī),為了能夠解析 usb.dev志秃,還需要配置一下 /etc/hosts:
ip地址 usb.dev
如果用瀏覽器驗(yàn)證怔球,需要把客戶端證書導(dǎo)出成 p12 格式的
openssl pkcs12 -export -clcerts -in client.crt -inkey client.pem -out client.p12