发布时间:2026/8/8 11:45:19
http升级为https http升级为https是在服务器端(不是在域名端),但要求被升级的域名已经被解析到此服务器HTTP 升级为 HTTPS 的原理 : 在 HTTP 下面加了一层 SSL/TLS 加密层把明文传输变成密文传输1 申请并下载SSL证书(百度云服务器)登录百度智能云控制台 搜索SSL证书 普通SSL证书点击购买证书 选择域名型DV单域名版TrustAsia(免费) 3个月(测试版) 购买点击证书申请 填写需要升级的域名 获得域名验证的TXT解析记录● 主机记录(如 _dnsauth 或 _acme-challenge)● 记录类型: TXT● 记录值: 一串随机字符域名验证: 登录域名DNS服务商(阿里云/腾讯云等) 找到该域名的DNS解析设置 添加对应的TXT解析记录域名解析:将域名通过DNS解析指向服务器IP,一个域名可以同时解析到多个服务器IP(轮询,权重...)ICP备案:域名第一次接入某厂商的云服务器需要做ICP备案,如果换了另一厂商的云服务器只需要做接入备案,一个厂商只需要做一次备案,以后再在此厂商买的云服务器(厂商相同,服务器公网IP不同)无需再做ICP备案或接入备案,只需要把域名解析改一下即可复杂组合:域名是在阿里云买的,但是域名的DNS解析交给了腾讯云,服务器是百度云的,此时TXT解析记录就应该填写在腾讯云(而不是阿里云),(一般等10分钟生效)然后在百度云查看SSL证书是否申请成功SSL证书申请成功后,在云服务器所在厂商(比如百度云)点击下载SSL证书(Nginx选PEM_Nginx),会得到一个压缩包:包含了各种服务器软件(比如Nginx,Apache,Tomcat等)对应的证书(比如xxx.key和xxx_ca.crt)包含了各种服务器软件上安装SSL证书的安装指南2 放行云服务器安全组与防火墙在安全组中放行443接口3 上传证书并配置 Web 服务器(比如Nginx)3.1 Nginx安装目录新建cert目录如果是在docker中安装的Nginx,通过以下命令进入docker exec -it nginx容器名 bash创建cert目录mkdir cert3.2 将本地文件上传到cert目录将本地文件上传到云服务器比较简单,一般shell工具自带此功能如果要将本地文件上传到云服务器的docker容器中,可以先将本地文件上传到云服务器,在通过以下命令将云服务器的文件拷贝(见docker这篇文章)到docker容器中docker cp /root/docker_nginx/cert/aboluo.xyz_ca.crt nginx_container_80:/cert docker cp /root/docker_nginx/cert/aboluo.xyz.key nginx_container_80:/cert3.3 修改nginx.conf文件在docker容器中的目录/etc/nginx/nginx.conf,此时查看文件可能如下并没有server{......},但最后一行已经说明了nginx.conf文件引入了/etc/nginx/conf.d目录下的所有以.conf结尾的文件,那我们继续去对应目录找,发现conf.d目录下只有一个default.conf文件,打开它果然出现了server{......},继续改造default.conf文件:server { listen 443 ssl http2; # 监听 443 端口并开启 SSL(推荐写法替代ssl on),http2是http的升级 listen [::]:443 ssl http2; # 加上 IPv6 支持 (可选但推荐),http2是http的升级 server_name aboluo.xyz www.aboluo.xyz; # --- 证书路径必须是容器内的绝对路径 --- ssl_certificate /cert/aboluo.xyz_ca.crt; # 对应图中的 domain.crt ssl_certificate_key /cert/aboluo.xyz.key; # 对应图中的 domain.key # --- 安全设置 (图中示例比较旧建议升级) --- ssl_protocols TLSv1.2 TLSv1.3; # 禁用旧的 TLSv1.1 ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; # --- 安全响应头 --- # 开启 HSTS强制 HTTPS 一年(max-age单位秒)包含子域名 # 在max-age时间内浏览器会强制记住“这个域名只能用 HTTPS,如果SSL过期访问http就会被拒绝,所以这个时间不要设置的过长 add_header Strict-Transport-Security max-age3600; includeSubDomains always; # --- 站点配置 --- root /usr/share/nginx/html; index index.html index.htm; location / { try_files $uri $uri/ 404; } } # 专门处理 80 端口强制跳转到 443(即http - https) server { listen 80; server_name aboluo.xyz www.aboluo.xyz; return 301 https://$host$request_uri; }但是进入nginx容器后,可以查看(cat命令)文件,但不能修改(vim命令)文件,所以可以使用docker cp命令将容器里面的default.conf拷贝到宿主机(拷贝成功后将容器里的default.conf删除掉),再从宿主机下载到本地,在本地修改好后上传到宿主机,再用docker cp命令将修改好的default.conf拷贝到nginx容器或者直接在本地创建default.conf,然后相同的操作.......3.4 重启nginx重启nginx后,访问nginx里面的网址,如果网页时https开头的,表示升级HTTP 升级为 HTTPS成功4 微服务接口支持https完成对Nginx容器的改造后,访问Nginx容器中的网页确实是以https开头了,但网页访问微服务提供的接口依然是http,并且这种网页https,但接口http会被浏览器报错,因此需要对微服务接口做改造4.1 改造原理请求接口通过Nginx容器间接去请求微服务接口(或Gateway接口),而不是直接请求微服务接口(或Gateway接口),即:网页 Nginx Gateway 微服务.do接口,这样有个好处,就是网页和接口都走Nginx,SSL证书只需要在Nginx里面维护1份即可4.2 改造Nginxserver { listen 443 ssl http2; # 监听 443 端口并开启 SSL(推荐写法替代ssl on),http2是http的升级 listen [::]:443 ssl http2; # 加上 IPv6 支持 (可选但推荐),http2是http的升级 server_name aboluo.xyz www.aboluo.xyz; # --- 证书路径必须是容器内的绝对路径 --- ssl_certificate /cert/aboluo.xyz_ca.crt; # 对应图中的 domain.crt ssl_certificate_key /cert/aboluo.xyz.key; # 对应图中的 domain.key # --- 安全设置 (图中示例比较旧建议升级) --- ssl_protocols TLSv1.2 TLSv1.3; # 禁用旧的 TLSv1.1 ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; # --- 安全响应头 --- # 开启 HSTS强制 HTTPS 一年(max-age单位秒)包含子域名 # 在max-age时间内浏览器会强制记住“这个域名只能用 HTTPS,如果SSL过期访问http就会被拒绝,所以这个时间不要设置的过长 add_header Strict-Transport-Security max-age3600; includeSubDomains always; #静态资源优先匹配正则location优先级高于location / location ~* \.(html|js|css|png|jpg|jpeg)$ { root /usr/share/nginx/html; } #专门处理访问根目录,读取本地index.html location / { root /usr/share/nginx/html; index index.html index.htm; } # 所有接口转发到gateway容器:8080 location / { proxy_pass http://gateway_container_8080:8080; # gateway_container_8080为docker容器名 #proxy_pass http://123.123.123.123:8080; # Nginx和Gateway不在同一个云服务器 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 告诉网关,原始客户端请求协议是https proxy_set_header X-Forwarded-Proto $scheme; } } # 专门处理 80 端口强制跳转到 443(即http - https) server { listen 80; server_name aboluo.xyz www.aboluo.xyz; return 301 https://$host$request_uri; }4.3 改造Gateway配置gateway模块的bootstrap.yml,添加如下配置spring: cloud: gateway: # 接受Nginx传过来的https,而不是http x-forwarded: enabled: true proto-enabled: true for-enabled: true host-enabled: true4.4 改造微服务配置微服务模块的bootstrap.yml,添加如下匹配值server: forward‑headers‑strategy: native # 接受gateway传过来的https,而不是http4.5 改造axiosaxios的url不能写死为http://aboluo.xyz:8080/aaa/xxx.do,应该修改为:在本地启动: http://localhost:8080/aaa/xxx.do在云服务器启动: /aaa/xxx.do4.6 改造结果改造好后,访问.do接口可以通过3种方式:直接访问接口:http://aboluo.xyz:81/aaa/xxx.do直接走Gateway:http://aboluo.xyz:8080/aaa/xxx.do走Nginx,再间接走Gateway:https://aboluo.xyz/aaa/xxx.do但是对于通过https访问网页的情况,浏览器不允许此网页网页https,但接口http,因此只能走Nginx,再间接走Gateway

相关新闻

2026/8/8 11:40:19

Rusted PackFile Manager:全面战争模组制作终极指南

Rusted PackFile Manager:全面战争模组制作终极指南 【免费下载链接】rpfm Rusted PackFile Manager (RPFM) is a... reimplementation in Rust and Qt6 of PackFile Manager (PFM), one of the best modding tools for Total War Games. 项目地址: https://gitco…

2026/8/8 11:40:19

UE4崩溃卡顿系统排查:从日志分析到硬件诊断的8个实战方法

1. 从“玄学”到“科学”:理解UE4崩溃卡顿的本质 如果你正在用虚幻引擎4(UE4)开发项目,无论是独立游戏、建筑可视化还是影视动画,大概率都经历过那个令人血压飙升的时刻:编辑器毫无征兆地崩溃,或…

2026/8/8 11:40:19

Floccus + Nextcloud/WebDAV:开源方案实现跨浏览器书签同步

如果你是一名长期在 macOS 和 iOS 生态中工作的开发者,或者是一名对数据隐私有较高要求的用户,那么“浏览器书签同步”这件事,很可能就是你日常工作中一个不大不小的痛点。尤其是当你需要在 Safari 和 Chrome、Edge、Firefox 等其他浏览器之间…

2026/8/8 12:50:23

10个Prompt改造策略:让AI生成生产级代码,从能用变好用

1. 从“能用”到“好用”:为什么AI生成的代码总差一口气? 如果你和我一样,把Cursor这类AI编程工具当作日常开发的“副驾驶”,那你一定经历过这种场景:你满怀期待地输入一个需求,AI也“唰”地一下给出了几十…

2026/8/8 12:50:23

终极指南:如何免费解锁Wand-Enhancer完整游戏修改功能

终极指南:如何免费解锁Wand-Enhancer完整游戏修改功能 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在为游戏修改器的高级功能需要…

2026/8/8 12:50:23

解决IntelliJ IDEA项目目录顺序错乱问题

1. 问题现象与背景分析 最近在使用IntelliJ IDEA进行Java项目开发时,遇到了一个让人头疼的问题——项目目录结构显示顺序错乱。明明是按照字母顺序创建的文件和包,但在IDEA的Project视图中却出现了完全无序的排列,导致快速定位文件变得异常困…

2026/8/8 12:50:23

从零构建自动化机器学习实验平台:Discovery Loop核心架构与Python实战

最近在技术圈看到不少关于 Jeff Dean 创办 Discovery Loop 的讨论,作为 AI 和系统架构领域的传奇人物,他的新动向自然备受关注。虽然这本身是一个行业新闻,但背后折射出的技术趋势——特别是大规模机器学习系统、AI 基础设施以及高效能计算的…

2026/8/8 12:45:23

编译原理核心概念与实战:从词法分析到代码优化的完整指南

1. 项目概述:为什么“编译原理”值得你花时间啃下来? 又到了学期末,看着桌上那本比砖头还厚的《编译原理》教材,是不是感觉头皮发麻?词法分析、语法分析、语义分析、中间代码生成、代码优化……这些名词每个都认识&…

2026/8/7 19:43:11

如何用免费工具突破游戏窗口限制:SRWE完整使用指南

如何用免费工具突破游戏窗口限制:SRWE完整使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否遇到过这样的困扰?想为心爱的游戏截图,却发现游戏不支持自定义分辨率…

2026/8/8 0:04:22

Java图像处理实战指南

要执行这些 Java AWT 图像处理程序,你需要将它们分别保存为独立的 .java 文件,并使用 javac 编译,然后使用 java 运行。以下是每个程序的核心执行步骤、依赖关系和要点。 通用执行步骤 保存文件:将每个 listing 的代码复制到文本…

2026/8/8 0:04:23

昇腾AI代理实现多号通话自动化

基于昇腾(Ascend)硬件与AtomGit AI社区的开源生态,结合AI Agent技术,可以实现一个模拟“通话重复使用机号复制”功能的安卓手机应用原型。其核心是利用AI Agent进行意图理解、任务编排和自动化操作,模拟或管理多号码的…

2026/8/8 0:04:23

2026年Graph+AI Agents最新创新思路

本次围绕GraphAI Agents这个方向筛选了15篇高质量论文,都是近年来具有较高引用价值或方法创新的研究工作,其中部分来自IJCAI、AAAI、ICRA。 对于论文er来说,这些论文方法结构清晰、可复现性较强,在多个任务上都有可延展的空间。如…

2026/8/7 9:44:18

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/7 19:03:32

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/8 2:17:42

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…