雙向認證-nginx

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

相關文章
相關標籤/搜索