news 2026/4/23 20:28:46

域名化改造并将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/23 13:00:11

关于正则表达式

一、前言 正则表达式(Regular Expression,简称 Regex)是一种用于匹配、查找、替换字符串的强大工具,广泛应用于数据验证、日志分析、文本处理等场景。无论是前端表单验证、后端数据清洗,还是爬虫数据提取,…

作者头像 李华
网站建设 2026/4/23 17:54:29

探索STM32低成本MD500E永磁同步电机单电阻FOC无感算法

单电阻foc版本STM32低成本MD500E永磁同步pmsm,单电阻foc,无感算法方案,高性价比变频器方案 md500e单电阻采样:精简移植了md500e的无感svc部分到f103中,值得研究学习包括精简md500e移植到f103里的代 码一份 &#xff0c…

作者头像 李华
网站建设 2026/4/23 17:50:37

LSDYNA材料本构经验笔记:一座材料模型的宝库

lsdyna材料本构经验笔记,有500多页,包含各类金属土壤泡沫玻璃混凝土岩石等各种材料模型。最近研读了一本超有料的 “宝典”——500 多页的 LSDYNA 材料本构经验笔记,简直打开了新世界的大门。这笔记涵盖之广,从各类金属到土壤&…

作者头像 李华
网站建设 2026/4/23 14:52:21

信创云渲染:构建数字化未来的核心基石

在数字化转型不断深化的今天,渲染能力作为图形图像处理与三维可视化呈现的关键环节,其重要性日益凸显。特别是在信息技术应用创新产业蓬勃发展的背景下,满足国产化、安全可控要求的渲染解决方案,成为众多行业升级的迫切需求。传统…

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

丝杆支撑座同轴度如何安装?

丝杆支撑座的同轴度是保障传动系统平稳运行的关键,被广泛应用于数控机床、自动化设备、3D打印机等高精度传动系统。如偏心安装会导致丝杆弯曲、振动加剧甚至设备停机。如何在安装环节将同轴度误差控制在微米级?采用基准轴与百分表打表法:将一…

作者头像 李华
网站建设 2026/4/23 16:12:06

金融风控图 Agent 实时分析实战(99.9%准确率架构曝光)

第一章:金融风控图 Agent 的实时分析在高频交易与复杂欺诈手段并存的现代金融环境中,传统批处理式风控系统已难以应对毫秒级的风险识别需求。金融风控图 Agent 通过构建动态知识图谱,结合流式计算引擎,实现对账户、交易、设备等多…

作者头像 李华