Nginx 配置支持 HTTPS 代理

个人博客地址:Nginx 配置支持 HTTPS 代理 | 一张假钞的真实世界

本文描述的是Nginx HTTPS反向代理的情况(即后端服务是HTTP的)。

使用openssl配置ssl证书

生成服务器端的私钥(key 文件):

bash 复制代码
# openssl genrsa -des3 -out server.key 2048
Generating RSA private key, 2048 bit long modulus
.............+++
..........+++
e is 65537 (0x10001)
Enter pass phrase for server.key:

输入两次密码后key文件生成完毕。

生成CSR(Certificate Signing Request)文件:

bash 复制代码
# openssl req -new -key server.key -out server.crs

根据提示输入需要的信息后CSR文件生成完毕。

生成自签名的CA文件:

bash 复制代码
# openssl x509 -req -days 3650 -in server.crs -signkey server.key -out ca.crt
Signature ok
subject=/C=cn/ST=beijing/L=beijing/O=test/OU=test/CN=test/emailAddress=test@test.com
Getting Private key
Enter pass phrase for server.key:

输入key文件的密码后CA文件生成完毕。

Nginx配置

bash 复制代码
server {
    listen 443;
    ssl on;
    ssl_certificate ca.crt;
    ssl_certificate_key server.key;

    location / {
        proxy_pass http://192.168.36.144:11000;
     }
}

重新加载Nginx配置文件后,发现Nginx代理的443端口未正常启动。查看Nginx error日志发现以下异常信息:

bash 复制代码
2019/03/12 16:49:26 [emerg] 85175#0: SSL_CTX_use_PrivateKey_file("/etc/nginx/server.key") failed (SSL: error:0906406D:PEM routines:PEM_def_callback:problems getting password error:0906A068:PEM routines:PEM_do_header:bad password read error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)

通过以下方式解决:

bash 复制代码
# mv server.key server.key.org
# openssl rsa -in server.key.org -out server.key

重新加载Nginx配置文件。此时也不需要再输入key文件的密码了。

相关推荐
天远API1 小时前
零信任架构实战:基于天远运营商三要素详版V即时版构建自动化消费电子大促电商平台高价值权益秒杀与优惠券防羊毛高并发实名核验网关
运维·人工智能·架构·自动化
Android系统攻城狮2 小时前
Linux FFmpeg深度解析之avcodec_default_get_encode_buffer调用流程与实战(二十八)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频
乐维_lwops2 小时前
案例解读:大型综合性科创产业园运维监控落地实践
运维·网络·人工智能·安全·it监控·国产运维智能体
番茄啊4 小时前
linux 开启xftp连接
linux·运维·服务器
IT利刃出鞘4 小时前
Docker Compose--解决修改配置后不生效的问题
运维·docker·容器
Lsetea4 小时前
Docker更新SSL证书后容器仍读旧文件:单文件挂载与目录挂载排查
运维·nginx·docker·https·ssl证书
Julien20045 小时前
管理机密(一)
运维·服务器·开发语言·学习方法
十碗饭吃不饱6 小时前
后端运维:网络联通、进程查询、Java服务启动脚本
java·运维·网络
好用斋6 小时前
拾光坞安装网盘聚合LitePan:把Docker命令翻译成图形界面
运维·docker·容器
贝锐7 小时前
金仓、达梦、TDSQL全适配:向日葵补齐信创数据库层远程运维能力
运维·数据库·信创