news 2026/4/18 1:13:24

域名化改造并将http转https【nginx重定向版】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
域名化改造并将http转https【nginx重定向版】

记录一下域名化以及http转https的改造过程。

应用背景:

前端+后端+tongweb+nginx

域名化

​ 多服务器使用负载IP申请,单服务器使用服务器地址申请。

​ 验证域名是否开通成功,使用win+R录入cmd打开命令窗口,使用ping 域名访问已申请好的服务器

​ 调整前端以及后端配置文件中的跳转地址:将访问地址中的本服务器IP调整为域名地址(只改127.0.0.1以及该域名对应的服务器IP)

http转https

1.自签名证书申请(内网访问应用)

使用访问服务的域名/IP申请,用什么申请就用什么访问。

申请好的证书包含.crt文件(公钥)以及.key文件(私钥)。

2.配置https请求以及证书配置
a. 上传证书到服务器,/opt/ssl/包含.crt(公钥)以及.key(私钥)

b. 检查防火墙是否放行443端口:firewall-cmd --query-port=443/tcp

​ 我的没有开,没有放行的话执行以下:

# 允许443端口sudofirewall-cmd --zone=public --add-port=443/tcp --permanent# 重新加载防火墙规则sudofirewall-cmd --reload
c. 备份后端yml配置文件,将yml中的http修改为https

​ 注:只改改过域名的位置

d. 备份前端js配置文件,将http修改为https

​ 注:只改改过域名的位置

e. 备份nginx.conf

​ 找到nginx的配置文件位置(可能在/usr/local/nginx或者/etc/nginx

​ 将原文件备份并修改配置为:

# 指定启动用户user xxxx;worker_processes1;error_log logs/error.log;events{worker_connections1024;}#HTTP自动跳转到HTTPS(关键)server{listen80;# 这里修改为:你的域名 + 原有IP(兼容旧访问方式)server_name aaa.com xx.xx.xx.xx;client_max_body_size 900M;# 所有HTTP请求都跳转到HTTPSreturn301https://$host$request_uri;}# HTTP自动跳转到HTTPS(关键)server{listen443ssl;server_name xx.xx.xx.xx aaa.com;client_max_body_size 900M;root"/home/xxx/";# 1. 配置服务器证书(certificate.crt)ssl_certificate /opt/ssl/certificate.crt;# 2. 配置服务器私钥(private.key)ssl_certificate_key /opt/ssl/private.key;# 3. 配置CA证书链(ca-certificates.crt)ssl_trusted_certificate /opt/ssl/ca-certificates.crt;# 安全配置:仅启用TLS1.2/TLS1.3,禁用不安全协议ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256;ssl_session_timeout 10m;# 后端location /app{proxy_set_header X-Real-IP$remote_addr;# 传递HTTPS标识给后端,以及Host头(解决后端跳转/回调问题)proxy_set_header Host$host;proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;# 告诉后端是HTTPS请求proxy_set_header X-Forwarded-Proto$scheme;proxy_pass http://127.0.0.1:端口号/;proxy_connect_timeout60;proxy_send_timeout60;proxy_read_timeout540;proxy_buffering on;}......}
f. 停nginxps -ef|grep nginx查看进程号(进程一般在root下,需要在.conf文件中指定启动用户才行)kill -9 主进程号 工作进程号


g. 启动nginx/usr/local/nginx/sbin/nginx启动nginx是否报错?
nginx:[emerg]the"ssl"parameter requires ngx_http_ssl_modulein/usr/local/nginx/conf/nginx.conf:45(行号,不重要)

​ (1)不报ssl错,nginx启动成功。

​ (2)报错。

​ 检查是否有ssl模块:nginx -v

​ 没有的话将原来的nginx服务停止并将原来的nginx文件夹修改为备份名称nginx_bk用yum命令重新下载:yum install nginx -y

​ 再次检查是否有ssl模块:nginx -v,查看是否包含--with-http_ssl_module,包含说明ssl模块已存在。

​ (3)修改权限:

chown-R webapps:webapps /etc/nginx/chown-R webapps:webapps /usr/share/nginx/chown-R webapps:webapps /var/lib/nginx/

​ (4)建文件夹:/usr/share/nginx/路径下新建logs文件夹,所有者为webapps

​ (5)修改新的nginx的配置文件:在/etc/nginx/下将默认的配置文件重命名,将步骤e中编辑好的配置文件(备份的nginx_bk里面的conf下的nginx.con)复制到/etc/nginx/

​ (6)检查nginx配置文件:nginx -t并启动systemctl start nginx

h. 重启应用服务。
i. 进行浏览器访问验证,发现控制台跨域报错。

​ 原因为前端配置的跳转接口路径为域名路径,以域名访问时,前端配置文件跳转地址为域名地址,不会产生跨域。但以IP访问时依旧会跳转到域名路径,这样就跨域了。

​ 修改思路:动态配置前端到后端的请求路径,用什么访问就拼接什么跳转。

​ 注:如果修改完还是报访问错误,建议检查下是否服务器上使用的前端配置文件时隔离出来放置在其他位置的。

j. 重新访问验证:访问后端接口时报错找不到证书
[systemout][java.lang.RuntimeException: 接口调用异常:I/O error on GET requestfor"https://jjxtc.ho.ncits/taishanApi/tsSecApi/getRoleDataAuth":sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable tofindvalid certification path to requested target;nested exception is[javax.net](https://javax.net).ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable tofindvalid certification path to requested target]

​ 解决方案:把证书配置到jdk的cacert下面。

# 1. 查看java命令的路径(查找java新任库的路径)whichjava# 示例输出:/usr/bin/java(这是软链接,需要追根溯源)# 2. 追踪软链接的实际路径ls-l /usr/bin/java# 示例输出:/usr/bin/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java# 3. 提取JDK根路径:/usr/lib/jvm/java-11-openjdk-amd64# 4.把证书加入java证书信任库:keytool -import -alias jjxtc-server -file /opt/ssl/certificate.crt -keystore /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-1.h5.ky10.x86_64/jre/lib/security/cacerts -storepass changeit

再次使用浏览器访问,成功访问!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:17:03

MCP Azure量子错误纠正实战:掌握3种高效容错技术提升计算稳定性

第一章:MCP Azure量子错误处理概述 量子计算在实现通用化和实用化过程中面临的主要挑战之一是量子噪声与错误。Azure Quantum作为微软推出的量子计算云平台,集成了MCP(Microsoft Quantum Control Protocol)框架,用于监…

作者头像 李华
网站建设 2026/4/18 8:40:04

大数据治安防控中心

大数据治安防控中心 警务治安防控中心,通过大数据平台将各职能部门功能整合进治安防控中心,利用大数据分析构建治安管理防控模型,建立治安分析评估、警情动态监测预警,人、车、物、场所一体管控机制,实现精准预警、精准…

作者头像 李华
网站建设 2026/4/18 12:08:56

YOLOv8剪枝代码方法(一):基于L1、L2、RandomStrategy的探索

YOLOv8剪枝代码方法(一) 该剪枝代码是基于L1、L2、RandomStrategy进行剪枝 过程如下: pip install torch_pruning 0.2.7 剪枝过程如下: ①yolov8-train.py进行训练模型权重,此时fintune False ②yolov8_pruning.py剪…

作者头像 李华
网站建设 2026/4/18 8:50:18

程序员必藏:100+高危端口安全风险全面解析与防护指南

高危端口一直是攻击者关注的焦点,了解这些端口的风险、攻击方式及防护策略至关重要。 一、文件传输类端口 TCP 20/21:FTP服务端口 FTP(文件传输协议)用于文件的上传和下载。其明文传输特性使得用户名、密码等敏感信息极易被截获&…

作者头像 李华
网站建设 2026/4/17 15:26:14

大模型学习方法之——大模型技术学习路线

“ 技术学习无非涵盖三个方面,理论,实践和应用**”** 大模型技术爆火至今已经有两年的时间了,而且大模型技术的发展潜力也不言而喻。因此,很多人打算学习大模型,但又不知道该怎么入手,因此今天就来了解一下…

作者头像 李华