1账月、設(shè)置容器
docker run -it --name nginx-test2 -v /home/nginx:/apps? -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -p 8183:80? -p 7443:443? ? -d nginx:stable
2辕近、修改nginx配置文件
? ? 啟用ssl證書
? ? ssl? ? ? ? ? ? ? ? ? on;
? ? ssl_certificate? ? ? /apps/ssl/server.crt;
? ? ssl_certificate_key? /apps/ssl/server.key;
? ? ssl_client_certificate /apps/ssl/ca.crt;? ? #CA證書用于驗(yàn)證客戶端證書的合法性
? ? ssl_verify_client? ? ? on;? ? ? ? ? ? ? ? ? ? ? #開(kāi)啟對(duì)客戶端的驗(yàn)證?
3、生成服務(wù)端證書
自制CA练般,已經(jīng)存在
生成server端證書
1. 進(jìn)入key文件夾
cd key/
2. 生成server私鑰
openssl genrsa -out server.key 2048
--去掉格式
openssl? genrsa? -out? server.key? 2048
3. 使用server私鑰生成server端證書請(qǐng)求文件
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=Teamsun/OU=guoxu/CN=guoxu"
(沒(méi)有-x509選項(xiàng)則生成證書請(qǐng)求文件。)
4. 使用server證書請(qǐng)求文件通過(guò)CA生成自簽名證書
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
注意如果是IP,需要用這個(gè)
? openssl ca -in server.csr -out server.crt -cert cloud_ca.crt -keyfile cloud_ca.key -extensions v3_req -notext -config openssl.cnf
5. 驗(yàn)證server證書
gouxu@gouxu-pc:~/gx/key$ openssl? verify? -Cafile? ca.crt? ? server.crt?
server.crt: OK
gouxu@gouxu-pc:~/gx/key$
驗(yàn)證服務(wù)端證書
openssl s_server -accept 10001 -key server.key -cert server.crt
nginx具體的配置項(xiàng)具體請(qǐng)參考
http://nginx.org/en/docs/http/ngx_http_ssl_module.html#example
6榕吼、生成客戶端證書
生成客戶端私鑰
openssl? genrsa? -out? client.key? 2048
生成證書請(qǐng)求文件
openssl? req? -new? -key? client.key? -out? client.csr? -subj? "/C=CN/ST=fj/L=fz/O=landicorp/OU=landicorp/CN=apos"
生成簽名證書
openssl ca -in client.csr -out client.crt -cert CA/ca.crt -keyfile CA/ca.key -extensions v3_req -notext -config openssl.cnf
轉(zhuǎn)成p12格式的證書
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12