1、設置容器html
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:stablenginx
二、修改nginx配置文件docker
啓用ssl證書app
ssl on;server
ssl_certificate /apps/ssl/server.crt;htm
ssl_certificate_key /apps/ssl/server.key;ssl
ssl_client_certificate /apps/ssl/ca.crt; #CA證書用於驗證客戶端證書的合法性get
ssl_verify_client on; #開啓對客戶端的驗證 openssl
三、生成服務端證書it
自制CA,已經存在
生成server端證書
1. 進入key文件夾
cd key/
2. 生成server私鑰
openssl genrsa -out server.key 2048
--去掉格式
openssl genrsa -out server.key 2048
3. 使用server私鑰生成server端證書請求文件
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=Teamsun/OU=guoxu/CN=guoxu"
(沒有-x509選項則生成證書請求文件。)
4. 使用server證書請求文件經過CA生成自簽名證書
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
注意若是是IP,須要用這個
openssl ca -in server.csr -out server.crt -cert cloud_ca.crt -keyfile cloud_ca.key -extensions v3_req -notext -config openssl.cnf
5. 驗證server證書
gouxu@gouxu-pc:~/gx/key$ openssl verify -Cafile ca.crt server.crt
server.crt: OK
gouxu@gouxu-pc:~/gx/key$
驗證服務端證書
openssl s_server -accept 10001 -key server.key -cert server.crt
nginx具體的配置項具體請參考
http://nginx.org/en/docs/http/ngx_http_ssl_module.html#example
6、生成客戶端證書
生成客戶端私鑰
openssl genrsa -out client.key 2048
生成證書請求文件
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
轉成p12格式的證書
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12