0
点赞
收藏
分享

微信扫一扫

Nginx 配置 SSL 双向认证

alonwang 2023-04-21 阅读 86


1. CA与自签名

制作 CA 私钥:

cd /App/nginx/conf
mkdir -p ssl
openssl genrsa -out ca.key 2048

制作 CA 公钥/根证书:

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/C=CN/ST=BeiJing/L=HaiDian/O=SHAREit Inc./OU=App/CN=root"

2. 服务器端证书

制作服务器端私钥:

openssl genrsa -out server.pem 2048
openssl rsa -in server.pem -out server.key

生成签发请求:

openssl req -new -key server.pem -out server.csr -subj "/C=CN/ST=BeiJing/L=HaiDian/O=SHAREit Inc./OU=App/CN=域名"

CN 为服务器的域名,不能与 CA 的相同。

用 CA 签发证书:

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

3. 客户端证书

制作私钥:

openssl genrsa -out client.pem 2048
openssl rsa -in client.pem -out client.key

生成签发请求:

openssl req -new -key client.pem -out client.csr -subj "/C=CN/ST=BeiJing/L=HaiDian/O=SHAREit Inc./OU=App/CN=域名"

CN 为服务器的域名,不能与 CA 的相同。

用 CA 签发:

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

如果是浏览器访问,需要将证书转换为 p12 格式,然后手动导入浏览器:

openssl pkcs12 -export -clcerts -in client.crt -inkey client.pem -out client.p12

4. Nginx 配置 server 段添加指令

ssl_verify_client on;
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
ssl_client_certificate ssl/ca.crt;

5. 验证

curl --insecure --key client.key --cert client.crt 'https://域名'

举报

相关推荐

0 条评论