news 2026/5/7 20:16:50

域名化改造并将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/5/7 16:39:28

探索Comsol中有损金属的高品质因子

Comsol有损金属的高品质因子。在科研和工程领域,我们常常会与各种复杂的物理现象和材料特性打交道。今天咱们就来唠唠Comsol里有损金属的高品质因子,这可是个相当有趣又实用的话题。 什么是高品质因子? 简单来说,高品质因子&#…

作者头像 李华
网站建设 2026/5/3 7:38:05

基于模糊决策法改进粒子群算法的微网多目标优化调度探索

基于模糊决策法改进粒子群算法的微网多目标优化调度 在改进惯性因子和加入变异基础上使用模糊决策法,模糊化目标函数,较少的迭代次数可得到更优的解。在微网多目标优化调度领域,如何高效地找到最优解一直是研究热点。粒子群算法(P…

作者头像 李华
网站建设 2026/5/3 10:55:20

Revit 2026:安装步骤机电设计 + 地形建模双优化,专业功能再升级下载

简介 面向建筑、工程与施工领域,Revit 2026 通过图形性能、文件交互及专业功能升级,优化可视化、IFC 处理与机电设计,提升 BIM 设计适配性与协作效率。 版本亮点 专业设计功能精准升级机电设计可控性增强:电气导线尺寸设置迁移优…

作者头像 李华
网站建设 2026/5/7 4:16:09

齿轮啮合刚度傅立叶级数展开程序解析

齿轮啮合刚度傅立叶级数展开程序,注释给全,附带一个例子在机械动力学领域,研究齿轮啮合刚度的特性至关重要。而通过傅立叶级数展开可以对其进行深入分析。下面咱们就来详细看看相关的程序实现。 程序代码 import numpy as np import matplotl…

作者头像 李华
网站建设 2026/5/1 12:11:43

使用Python处理JSON Lines格式的文件

使用Python处理JSON Lines格式的文件常用来处理JSON Lines格式日志文件;也适用于 .txt 中存储的 JSON 数据。著-------------Pan诶1准备需要使用到的外部库:Pandas、json。导入库,代码如下:import pandas as pdimport jsonimport …

作者头像 李华
网站建设 2026/5/6 7:38:37

海豹油 vs 鱼油,一秒看懂哪个更适合你

为什么越来越多人选择 mixomi 海豹油作为长期 Omega-3 补充方案在众多 Omega-3 营养补充剂中,鱼油和海豹油无疑是被讨论最多的两种。鱼油长期占据主流,而近年来,含有 DPA 的海豹油,正逐渐成为关注“吸收效率”和“结构完整性”人群…

作者头像 李华