
1. 首先,需要准备一个可用的证书文件,可以是自签名证书,也可以是CA机构颁发的证书,包括证书文件和私钥文件。
2. 在Nginx的配置文件中添加SSL模块,如下所示:
ssl_certificate your_certificate.crt
ssl_certificate_key your_certificate.key
3. 在Nginx配置文件中添加新的https端口,如下所示:
listen 443 ssl
4. 如果需要支持多个https端口,可以重复上面的步骤,添加多个监听端口,如下所示:
listen 443 ssl
listen 444 ssl
listen 445 ssl
5. 最后,执行重启Nginx服务,使配置文件生效:
sudo service nginx restart
准备阶段:
安装jdk的keytool命令
安装openssl命令
注:也可以只是用openssl产生证书。
1.使用jdk提供的keytool工具创建key.store证书
说明:
-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查看参数说明。
3.从PKCS12证书中提取公钥证书
通过openssl pkcs12 -help 查看参数说明。
4.从PKCS12证书中提取私钥
提取私钥。
转换证书为rsa格式。
5.查看nginx是否安装了ssl模块
通过nginx -V 查看,如果出现 (configure arguments: --with-http_ssl_module), 则已安装是否安装了ssl模块。
7.配置nginx
拷贝cert.pem,private-key.pem到nginx conf目录,配置server模块。
7.验证
想要使用https访问nginx上部署的项目首先得有ssl证书,ssl证书可以去阿里云或腾讯云之类的平台购买,当然也有免费的。我这里贴出nginx的相关配置来支持https访问,如果不知道怎样配置或者搞不清楚原理的朋友就直接照搬我的这部分server配置就行。PS:nginx需要安装ssl模块,如果使用docker启动的nginx则已经有了不需要安装。
这里不仅配置了https对于nginx的访问,还配置了代理来访问后端接口,所以前端在做请求时,请求的地址应该写为 https://www.abc123.com/api/ +接口地址,这样前端就能使用https来访问到后端的接口了。
顺便贴一个把http重定向为https的配置
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)