nginx使用openSSL自签生成https相关证书

生成CA私钥

openssl genrsa -out ca.key 2048

生成 CA 根证书 (自签名)

openssl req -new -x509 -days 36500 -key ca.key -out ca.crt -subj "/C=CN/ST=State/L=City/O=Organization/OU=Unit/CN=Root CA"

生成服务端私钥(给 Nginx 用)

openssl genrsa -out server.key 2048

生成服务端证书签名请求,下面ip需修改为域名或部署机器的ip

openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=State/L=City/O=Organization/OU=Unit/CN=192.168.2.129"

使用CA签发服务端证书,可修改签发有效期

openssl x509 -req -days 36500 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt

生成客户端私钥(给浏览器或其它接入程序使用)

openssl genrsa -out client.key 2048

生成客户端证书签名请求,下面的client_name需修改为接入端身份标识

openssl req -new -key client.key -out client.csr -subj "/C=CN/ST=State/L=City/O=Organization/OU=Unit/CN=client_name"

使用CA签发客户端证书,可修改签发有效期

openssl x509 -req -days 36500 -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt

打包客户端证书为PKCS12格式(给浏览器或其他接入程序使用)

openssl pkcs12 -export -out client.p12 -inkey client.key -in client.crt -certfile ca.crt

nginx.conf配置

复制代码
events {
    worker_connections 1024;
}

http {
   upstream gateway {
       server 192.168.1.111:8080 weight=1 max_fails=1 fail_timeout=30s;
    }

    server {
       listen 443 ssl;

	   ssl_certificate /usr/local/nginx/nginx_cert/server.crt;
       ssl_certificate_key /usr/local/nginx/nginx_cert/server.key;
	   ssl_client_certificate /usr/local/nginx/nginx_cert/ca.crt;
	   
	   # 开启客户端验证 (on 代表客户端服务端双端验证)
	   #ssl_verify_client on; 
	   
       ssl_protocols TLSv1.2 TLSv1.3;
       ssl_ciphers HIGH:!aNULL:!MD5:!RC4;

       location / {
          proxy_redirect off;
          proxy_set_header Host  $http_host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection 'upgrade';
          proxy_pass http://gateway;
       }
    }
}
相关推荐
R²AIN SUITE21 分钟前
企业智能体平台私有化部署需要什么服务器?CPU、内存、显卡与项目管理集成的7个评估项
运维·服务器
坚定的共产主义生产设备永不宕机22 分钟前
服务器从裸机开始搭建ESXI虚拟机
linux·服务器·网络
刚入门的大一新生29 分钟前
Linux-线程封装
linux·运维·服务器
Android系统攻城狮1 小时前
Linux FFmpeg深度解析之av_dump_format调用流程与实战(十一)
linux·运维·服务器·ffmpeg·1024程序员节·音视频进阶
Android系统攻城狮1 小时前
Linux FFmpeg深度解析之avcodec_find_decoder调用流程与实战(十二)
linux·运维·服务器·ffmpeg·1024程序员节·音视频进阶
小白的码BUG之路1 小时前
K8s -- 启动一主二从节点
linux·运维·服务器
AI_Lab011 小时前
服务器管理工具要在服务器上装 Agent,安全吗?
服务器·安全·github
风娜2 小时前
【Linux网络】UDP 服务器怎么写?从 socket、bind 到 recvfrom/sendto,手写完整回显服务器
linux·服务器·网络
静以修身zzz2 小时前
OpenStack对象存储-Swift、OpenStack编排管理-heat、OpenStack网络管理-neutron
linux·运维·服务器·架构·openstack·swift
2501_915921432 小时前
KXBuild CI 实操,Windows/Linux 服务器接入 Jenkins 打包 iOS IPA
服务器·windows·vscode·ios·ci/cd·个人开发·敏捷流程