使用openssl生成相关证书:
#生成CA私钥,私钥会被加密,需要设置密码
openssl genrsa -aes256 -out ca.key 2048
#生成CA证书签名请求,需要输入CA私钥密码,并按提示输入以下信息:Country Name、State or Province Name、Locality Name、Organization Name、Organizational Unit Name、Common Name
openssl req -new -key ca.key -out ca.csr
#自签名生成CA证书,需要输入CA私钥密码
openssl x509 -req -days 36500 -sha1 -extensions v3_ca -signkey ca.key -in ca.csr -out ca.crt
 
#生成服务端私钥,私钥会被加密,需要设置密码
openssl genrsa -aes256 -out server.key 2048
#解密服务端私钥,需要输入服务端私钥密码
openssl rsa -in server.key -out server.key
#生成服务端证书签名请求,并按提示输入以下信息:Country Name、State or Province Name、Locality Name、Organization Name、Organizational Unit Name、Common Name
openssl req -new -key server.key -out server.csr
#用CA私钥签名生成服务端证书,需要输入CA私钥密码
openssl x509 -req -days 36500 -sha1 -extensions v3_req -CA ca.crt -CAkey ca.key -CAserial ca.srl -CAcreateserial -in server.csr -out server.crt
 
#生成客户端私钥,私钥会被加密,需要设置密码
openssl genrsa -aes256 -out client.key 2048
#解密客户端私钥,需要输入客户端私钥密码
openssl rsa -in client.key -out client.key
#生成客户端证书签名请求,并按提示输入以下信息:Country Name、State or Province Name、Locality Name、Organization Name、Organizational Unit Name、Common Name
openssl req -new -key client.key -out client.csr
#用CA私钥签名生成客户端证书,需要输入CA私钥密码
openssl x509 -req -days 36500 -sha1 -extensions v3_req -CA ca.crt -CAkey ca.key -CAserial ca.srl -CAcreateserial -in client.csr -out client.crt
#导出客户端私钥和证书到p12证书,需要设置p12证书密码
openssl pkcs12 -export -clcerts -inkey client.key -in client.crt -out client.p12
 
配置示例:
server {
listen 80;
listen 443 ssl;
server_name localhost;
 
keepalive_timeout 70;
 
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
ssl_certificate /usr/local/nginx/ssl/server.crt;
ssl_certificate_key /usr/local/nginx/ssl/server.key;
ssl_client_certificate /usr/local/nginx/ssl/ca.crt;
ssl_verify_client on;
 

最新文章

  1. Bootstrap<基础二十七> 多媒体对象(Media Object)
  2. EasyUI中Grid标题居中方法(jquery实现方法)
  3. Android 在C代码中调用logcat
  4. TestNg线程池配置、执行次数配置、超时配置
  5. 团队SCRUM会议(第一次)
  6. nginx 502 错误
  7. delphi 在 DragDrop 的时候,滚动 TreeView
  8. nyoj 33 蛇形填数
  9. 基于url拦截实现权限控制
  10. IIC 概述之源码仿真
  11. mog使用指南
  12. 来谈一谈------JavaScript对象
  13. Oracle 12C 新特性之 sqlplus查看History命令
  14. “无法找到XXX.exe的调试信息,或调试信息不匹配”解决方案
  15. Java并发编程(十三)-- 线程池
  16. python使用细节
  17. linux每日命令(10):touch命令
  18. Win10系列:JavaScript 项目模板和项模板
  19. (转)android权限(permission)大全
  20. git命令小记

热门文章

  1. arduino智能循迹小车代码(三个循迹模块)
  2. FJOI2020 游记
  3. 网站seo优化有什么优缺点
  4. Python爬虫实战点触验证码, 模拟登陆bilibili
  5. 【NodeJS】-init
  6. jq cdn地址
  7. 调手表(bfs)
  8. ACboy needs your help (动态规划背包)
  9. iTextSharp生成PDF文件
  10. Java的枚举简单应用