论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
中间件
›
中间件
›
Nginx 配置 SSL(HTTPS)详解
Nginx 配置 SSL(HTTPS)详解
灌篮少年
论坛元老
|
2024-7-14 22:15:49
|
显示全部楼层
|
阅读模式
楼主
主题
1592
|
帖子
1592
|
积分
4776
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
Nginx作为一款高性能的HTTP和反向代理服务器,自然支持SSL/TLS加密通讯。本文将详细介绍如何在Nginx中配置SSL,实现HTTPS的访问。
随着互联网安全性的日益重要,HTTPS协议逐渐成为网站加密通讯的标配。Nginx作为一款高性能的HTTP和反向代理服务器,自然支持SSL/TLS加密通讯。本文将详细介绍如何在Nginx中配置SSL,实现HTTPS的访问。
利用Nginx进行反向代理的时候,对于正常的http;流量利用
location
块而且配置
proxy_pass
转发即可,但是假如是https的流量,利用Nginx进行反向代理的时候,直接利用
proxy_pass
会出现各种报错的情况,包括不限于:
502 Bad Getway
ERR_SSL_PROTOCOL_ERROR
ERR_CONNECTION_RESET
我本身碰到的ERR_SSL_PROTOCOL_ERROR错误比较多,这是由于在配置Nginx的时候,对于443端口本身的侦听没有带上
ssl
关键字,所以会报SSL协议错误,但是假如加上ssl,没有给证书位置,也是不可
对于转发到8080端口,假如配置不对(比如后端服务是http,结果配置了https),会出现502 Bad Getway
proxy_pass后边的要写IP地址,不能写域名,否则还要解决域名解析的问题,有据称假如写localhost的,访问速度会变慢,是由于需要访问host文件解析localhost
相应8080端口的server块,也要留意,也要写成侦听ssl,配置好证书位置
upstream plan-uat {
server 10.202.159.74:8080 max_fails=3 fail_timeout=10 weight=1;
}
server {
server_name plan-uat.ztoky.cn;
listen 443 ssl ;
ssl_certificate ssl/ztoky.cn.crt;
ssl_certificate_key ssl/ztoky.cn.key;
access_log logs/plan-uat.ztoky.cn.access.log json;
location /plan/ {
proxy_pass http://plan-uat/;
include proxy.conf;
}
}
复制代码
检查 linux 服务器上的 nginx 是否安装 ssl 模块
nginx 安装目次,下面有个 sbin 文件夹,来到 sbin 目次下执行 ./nginx -V命令,留意是大写的 V,小写的 v 只会展示 nginx 的版本号信息。执行完出现下图圈红的这些信息说明 ssl 模块已经安装过了。可以忽略下文的 ssl 模块安装的相关内容,直接看 nginx 配置的内容。
cd /usr/local/nginx/sbin
./nginx -V
复制代码
为 nginx 安装 ssl 模块
假如没有安装 ssl 模块,即使你成功的配置好 https 的相关配置,网站也依旧不能利用 https,会提示诸如:无法提供安全毗连、TLS协议不支持等问题。ssl 模块的安装是为了能让后端接口得以利用 https 的方式调用。找到我们的 nginx 安装解压包,我这里是放在 /usr/local/software 目次下,然后执行如下命令进入到 nginx-1.18.0 目次下。
cd /usr/local/nginx-1.18.0
复制代码
来到 ngixn-1.18.0 目次 然后依次执行如下这命令,配置了 ssl 模块,利用 make 命令重新编译
./configure --with-http_ssl_module
make
复制代码
进入 objs 目次,会看到 nginx 的可执行文件
留意,不能利用 make install 命令,这样会导致重新安装 nginx,此时当前目次就会出现 objs 目次
更换 nginx 可执行文件,我们利用这个新的 nginx 可执行文件 更换 sbin 目次下的 nginx 可执行文件
cp ./nginx /usr/local/nginx/sbin/
复制代码
系统会询问你是否覆盖,输入 y 即可,假如覆盖失败,多半是由于你的 nginx 还在启动中,先将 nginx 关闭即可,再次查验是否安装 ssl 模块,进入 nginx 目次
cd /usr/local/nginx/sbin/
复制代码
执行命令
./nginx -V
复制代码
此时就能看到 ssl 模块已经安装成功了
预备SSL证书
起首,我们需要预备SSL证书。你可以选择从证书颁发机构(CA)购买贸易证书,也可以自己生成自署名证书。自署名证书虽然免费,但不会被浏览器信任,仅适用于测试情况。
假如你选择购买贸易证书,通常会得到以下文件:
证书文件(比方:example.com.crt)
私钥文件(比方:example.com.key)
中间证书文件(假如有的话)
配置Nginx SSL 启用443端口
(1) 打开Nginx配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf。
(2) 在http块中,配置SSL相关参数。示比方下:
http {
...
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/example.com.crt; # 证书文件路径
ssl_certificate_key /path/to/example.com.key; # 私钥文件路径
# 如果有中间证书,也需要配置
ssl_trusted_certificate /path/to/intermediate.crt;
# 其他SSL配置参数
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3; # 支持的协议版本
ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL; # 使用此加密套件
ssl_prefer_server_ciphers on; # 优先使用服务器端的加密套件
# 其他server配置...
}
...
}
复制代码
测试HTTPS访问
现在,你的Nginx服务器已经配置了SSL,可以通过HTTPS协议访问了。在浏览器中输入https://example.com,检查是否能够成功访问并显示安全的毗连标识(如绿色锁头)。
此外,你还可以利用命令行工具(如openssl或curl)来测试HTTPS毗连和证书的有效性。
配置代理
利用proxy_pass指令来配置代理。以下是一个示例配置,将HTTPS请求代理到另一个HTTPS服务器:(留意这里的后端是HTTPS的服务)
后端服务是https范例的 proxy_pass https://your.backend.server;
后端服务是http范例的 proxy_pass http://your.backend.server;
server {
# 监听443端口,处理所有HTTPS请求
listen 443 ssl;
server_name your.domain.com;
# SSL配置
ssl_certificate /path/to/your/cert.pem;
ssl_certificate_key /path/to/your/private.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
# 代理配置,将HTTPS请求代理到另一个HTTPS服务器
location / {
proxy_pass https://your.backend.server;
}
}
复制代码
以上配置假设您的域名是your.domain.com,代理目标是您的后端HTTPS服务器(比方https://your.backend.server)。请记住将路径和参数适当地配置为您的特定场景。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
灌篮少年
论坛元老
这个人很懒什么都没写!
楼主热帖
【靶场】THM-Pickle Rick-练习
每日算法之二叉搜索树的后序遍历序列 ...
SAP WM高阶之下架策略M(Small Large Qu ...
Dubbo原理解析(非常透彻)
【邂逅Django】——(一)创建项目 ...
【WinUI3】ListView / GridView 学习总 ...
JDBC核心技术
docker报错:Docker Desktop - WSL dis ...
线程池
K3S系列文章-使用AutoK3s在腾讯云上安 ...
标签云
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
Nosql
人工智能
快速回复
返回顶部
返回列表