nginx配置https

2021-07-24  本文已影响0人  小诸葛686

流程

准备阶段:

安装jdk的keytool命令

安装openssl命令

注:也可以只是用openssl产生证书。

1.使用jdk提供的keytool工具创建key.store证书

keytool -genkey -alias test-server -dname "C=CN,ST=GD,L=SZ,OU=test,CN=www.test.com" -keyalg RSA -keysize 2048 -validity 3650 -keystore test-server.store -storepass 123456 -keypass 123456

说明:

-alias指定别名为test-server;

dname 由C 国家,ST 省份,L 城市,OU 单位,CN 一般网址(可以填任意)组成;

-keyalg指定RSA算法;

-keystore指定密钥文件名称为test-server.store;

-storepass指定存储密码;

-keypass指定私钥密码;

-validity指定有效期为3650天。

2.将生成的keystore转换为PKCS12

通过keytool -importkeystore -help查看参数说明。

keytool -importkeystore -srckeystore test-server.store -destkeystore test-server.store.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass 123456 -deststorepass 123456

3.从PKCS12证书中提取公钥证书

通过openssl pkcs12 -help 查看参数说明。

openssl pkcs12 -in test-server.store.p12 -passin pass:123456 -nokeys -out cert.pem

4.从PKCS12证书中提取私钥

提取私钥。

openssl pkcs12 -in test-server.store.p12 -passin pass:123456 -nocerts -nodes -out test-server-private-key.pem

转换证书为rsa格式。

openssl rsa -in test-server-private-key.pem -out private-key.pem

5.查看nginx是否安装了ssl模块

通过nginx -V 查看,如果出现 (configure arguments: --with-http_ssl_module), 则已安装是否安装了ssl模块。

D:\nginx>nginx -V
nginx version: nginx/1.17.2
built by cl 16.00.40219.01 for 80x86
built with OpenSSL 1.1.1c  28 May 2019
TLS SNI support enabled
configure arguments: --with-stream_ssl_module

7.配置nginx

拷贝cert.pem,private-key.pem到nginx conf目录,配置server模块。

server {
   listen  1443 ssl; #监听端口
   server_name  _; #请求域名
   ssl_certificate cert.pem; #pem证书私钥路径
   ssl_certificate_key private-key.pem; #pem证书公钥路径
   ssl_session_timeout     5m; #会话超时时间
   ssl_ciphers     ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #加密算法
   ssl_protocols   TLSv1 TLSv1.1 TLSv1.2; #SSL协议

   location / {
      root html;
      index index.html index.htm;
   }
}

7.验证

image.png
上一篇下一篇

猜你喜欢

热点阅读