关闭
Hit
enter
to search or
ESC
to close
May I Suggest ?
#leanote #leanote blog #code #hello world
柯仓无居所
Home
Archives
Tags
Search
Nginx 上配置 HTTPS证书双向认证
? HTTPS ?
? 双向认证 ?
726
0
0
swimming
? HTTPS ?
? 双向认证 ?
# HTTPS 双向认证 证书生成及Nginx配置 > 本文主要为HTTPS**双向证书**的生成以及Nginx如何配置双向证书认证,所需证书转换方式,具体内容如下: 1. 首先创建根证书私钥以及请求文件: ```bash openssl genrsa -out root.key 4096 openssl req -new -out root.csr -key root.key -subj "/C=CN/ST=BJ/L=test.com/O=test.com/OU=test.com/CN=192.168.1.1" ``` 2. 创建根证书(注意有效期): ```bash openssl x509 -req -in root.csr -out root.crt -signkey root.key -CAcreateserial -days 3650 ``` 3. 生成自签名服务器端证书: 1. 生成服务端证书私钥: ```bash openssl genrsa -out server.key 4096 ``` 2. 生成服务器证书请求文件: ```bash openssl req -new -out server.csr -key server.key -subj "/C=CN/ST=BJ/L=test.com/O=test.com/OU=test.com/CN=192.168.1.1" ``` 3. 生成服务器公钥证书: ```bash openssl x509 -req -in server.csr -out server.crt -signkey server.key -CA root.crt -CAkey root.key -CAcreateserial -days 3650 ``` 4. 生成自签名客户端证书 1. 生成客户端证书密钥: ```bash openssl genrsa -out client.key 4096 ``` 2. 生成客户端证书请求文件: ```bash openssl req -new -out client.csr -key client.key -subj "/C=CN/ST=BJ/L=test.com/O=test.com/OU=test.com/CN=192.168.1.1" ``` 3. 生成客户端证书: ```bash openssl x509 -req -in client.csr -out client.crt -signkey client.key -CA root.crt -CAkey root.key -CAcreateserial -days 3650 ``` 4. 生成客户端 P12格式证书: ```bash openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12 ``` 5. 生成客户端BKS格式证书: 此证书需要使用 [java小程序软件](http://portecle.sourceforge.net/) 新建BKS格式证书后导入再另存即可。 6. 生成客户端CER格式证书: ```bash openssl pkcs12 -export -out client.cer -inkey client.key -in client.crt ``` 7. 生成客户端PFX格式证书: ```bash openssl pkcs12 -export -out client.pfx -inkey client.key -in client.crt ``` 5. Nginx 配置 > nginx 下 conf 内配置如下,先确定开启ssl: ```bash listen 8443 ssl; # 服务器证书 ssl_certificate /home/tomcat/nginx/ssl/server.crt; # 服务器密钥,单项认证截止此处 ssl_certificate_key /home/tomcat/nginx/ssl/server.key; # 客户端证书,双向认证必须配置项目 ssl_client_certificate /home/tomcat/nginx/ssl/client.crt; # 双向认证必配项 ssl_verify_client on; ssl_prefer_server_ciphers on; # ssl协议 ssl_protocols TLSv1.2; # ssl加密方式 ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:HIGH:!aCHACHA20:!SHA:!3DES:!aNULL:!MD5:!RC4:!DHE'; ``` 6. 验证方法 ```bash curl --cert ./client.crt --key ./client.key https://192.168.1.1:8443/xxxxxx -k -v ``` *摘自* [巧用 Nginx 快速实现 HTTPS 双向认证](https://blog.csdn.net/easylife206/article/details/107776854)
觉得不错,点个赞?
提交评论
Sign in
to leave a comment.
No Leanote account ?
Sign up now
.
0
条评论
More...
文章目录
No Leanote account ? Sign up now.