翼度科技»论坛 云主机 服务器技术 查看内容

nginx配置https的双向认证方式

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
注意事项

配置双向认证,这里的common name需要都配置成不同

nginx 配置 https的双向认证


准备工作

linux环境安装openssl

生成证书步骤


1.新建一个文件夹
  1. mkdir /root/keys
复制代码
2.生成CA私钥 ca.key
  1. openssl genrsa -out ca.key 4096
复制代码
3.生成ca的数字证书 ca.crt
  1.    openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
  2.    Country Name (2 letter code) [AU]:
  3.    State or Province Name (full name) [Some-State]:
  4.    Locality Name (eg, city) []:
  5.    Organization Name (eg, company) [Internet Widgits Pty Ltd]:
  6.    Organizational Unit Name (eg, section) []:
  7.    Common Name (e.g. server FQDN or YOUR name) []:
  8.    Email Address []:
  9.    填入组织名称等信息
复制代码
4.生成server端的私钥
  1. openssl genrsa -out server.key 4096
复制代码
5.生成 server 端数字证书请求
  1.    openssl req -new -key server.key -out server.csr
  2.    Country Name (2 letter code) [AU]:CN
  3.    State or Province Name (full name) [Some-State]:Shanghai
  4.    Locality Name (eg, city) []:
  5.    Organization Name (eg, company) [Internet Widgits Pty Ltd]:Sidien Test
  6.    Organizational Unit Name (eg, section) []:
  7.    Common Name (e.g. server FQDN or YOUR name) []:192.168.0.162
  8.    Email Address []:

  9.    Please enter the following 'extra' attributes
  10.    to be sent with your certificate request
  11.    A challenge password []:
  12.    An optional company name []:
  13.   输入相关信息和密码
复制代码
6.用 CA 私钥签发 server 的数字证书
  1. openssl  x509 -req -in server.csr  -CA  ca.crt  -CAkey  ca.key  -CAcreateserial -out  server.crt  -days  3650
复制代码
7. 生成客户端私钥
  1. openssl  genrsa  -out  client.key  4096
复制代码
8. 生成客户端数字请求证书
  1.   openssl req -new -key client.key -out client.csr
  2.    Country Name (2 letter code) [AU]:
  3.    State or Province Name (full name) [Some-State]:
  4.    Locality Name (eg, city) []:
  5.    Organization Name (eg, company) [Internet Widgits Pty Ltd]:
  6.    Organizational Unit Name (eg, section) []:
  7.    Common Name (e.g. server FQDN or YOUR name) []:
  8.    Email Address []:

  9.    Please enter the following 'extra' attributes
  10.    to be sent with your certificate request
  11.    A challenge password []:
  12.    An optional company name []:
  13.   输入相关信息和密码
复制代码
9.用CA私钥签发数字证书:client.crt
  1. openssl  x509 -req -in server.csr  -CA  ca.crt  -CAkey  ca.key  -CAcreateserial -out  client.crt  -days  3650
复制代码
10.生成windows安装证书程序
  1. openssl pkcs12 -export -inkey client.key -in client.crt -out client.pfx
复制代码
将client.pfx拷贝到作为客户端的机器上,安装证书,输入生成时的密码

11.配置nginx
  1. ssl_certificate  /etc/pki/ca_linvo/server/server.crt;     #server公钥路径
  2. ssl_certificate_key  /etc/pki/ca_linvo/server/server.key;   #server私钥路径
  3. ssl_client_certificate   /etc/pki/ca_linvo/root/ca.crt;   #根级证书公钥路径,用于验证各个二级client
  4. ssl_verify_client on;   开启双向认证
复制代码
认证成功
  1. curl --cert ./client.crt --key ./client.key https://url -k -v
复制代码



开启gzip跟缓存
  1. gzip  on;

  2.     gzip_min_length     256;
  3.     gzip_buffers        4 16k;
  4.     gzip_http_version   1.1;
  5.     gzip_vary on;
  6.     gzip_comp_level 3;
  7.     gzip_disable "MSIE [1-6]\.";
  8.     gzip_proxied any;
  9. #这里设置需要压缩的格式
  10.     gzip_types
  11.         application/atom+xml
  12.         application/javascript
  13.         application/json
  14.         application/ld+json
  15.         application/manifest+json
  16.         application/rss+xml
  17.         application/vnd.geo+json
  18.         application/vnd.ms-fontobject
  19.         application/x-font-ttf
  20.         application/x-web-app-manifest+json
  21.         application/xhtml+xml
  22.         application/xml
  23.         font/opentype
  24.         image/bmp
  25.         image/svg+xml
  26.         image/x-icon
  27.         text/cache-manifest
  28.         text/css
  29.         text/plain
  30.         text/vcard
  31.         text/vnd.rim.location.xloc
  32.         text/vtt
  33.         text/x-component
  34.         text/x-cross-domain-policy;
  35.                 location / {   
  36.            root   /root/www/web;
  37.            index  index.html;
  38.            autoindex on;
  39.             if ($request_filename ~ .*.(js|css)$)
  40.          {
  41.          expires 7d;
  42.          }
  43.         }
复制代码
总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/server/33094116n.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具