当前位置: 首页 > news >正文

Http升级为Https - 开发/测试服环境

1.应用场景

主要用于开发/测试服环境将http升级为https, 防止前端web(浏览器)出现Mixed Content报错;

2.学习/操作

1.文档阅读

deepseek 问答;

2.整理输出

 报错信息:

Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint '<URL>'. This request has been blocked; the content must be served over HTTPS.

翻译:

混合内容:位于“<URL>”的页面是通过HTTPS加载的,但请求了不安全的XMLHttpRequest端点“<URL]”。此请求已被阻止;内容必须通过HTTPS提供。

生成自签名证书并在 CentOS 测试环境中配置 HTTPS 的步骤如下。

我们将使用 OpenSSL 创建自签名证书,并配置 Nginx 和 Apache 这两种常用的 Web 服务器。下面是具体步骤:

一、安装 OpenSSL

首先,请确保你的系统上安装了 OpenSSL,通常 CentOS 默认会安装它,如果没有,请使用以下命令来安装:

sudo yum install openssl -y

二、生成自签名证书

     创建目录

  1. 检查并创建 /etc/ssl/private 目录

    使用以下命令来确认目录是否存在并进行创建:sudo mkdir -p /etc/ssl/private

    -p 选项确保在没有上级目录时同时创建它们。

  2. 为 /etc/ssl/private 目录设置合适的权限

    在 Unix/Linux 系统上,通常会限制私钥的访问权限。可以设置以下权限:sudo chmod 700 /etc/ssl/private

  1. 生成私钥

    openssl genrsa -out /etc/ssl/private/selfsigned.key 2048
    

    这将生成一个 2048 位的私钥,文件保存为 /etc/ssl/private/selfsigned.key

  2. 生成自签名证书

    openssl req -new -x509 -key /etc/ssl/private/selfsigned.key -out /etc/ssl/certs/selfsigned.crt -days 365
    

    在执行此命令时,你将被要求输入一些信息,如下所示(可根据需求填写):

Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Beijing
Locality Name (eg, city) []:Beijing
Organization Name (比如公司名) [Internet Widgits Pty Ltd]:Your Company Name
Organizational Unit Name (eg, section) []:Your Organization Unit
Common Name (e.g. server FQDN or YOUR name) []:your_domain.com  # 这里填写你的域名或IP地址
Email Address []:your_email@example.com

这将生成有效期为 365 天的自签名证书,文件保存为 /etc/ssl/certs/selfsigned.crt

三、配置 Nginx 或 Apache

配置 Nginx

1. 编辑 Nginx 配置文件,通常为 /etc/nginx/nginx.conf 或某个特定站点的配置文件。

sudo vi /etc/nginx/nginx.conf

2. 在 server 块中添加 HTTPS 配置,例如

server {
    listen 443 ssl;
    server_name your_domain.com;  # 替换为你的域名

    ssl_certificate     /etc/ssl/certs/selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/selfsigned.key;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

3. 测试 Nginx 配置并重启 Nginx:

sudo nginx -t  # 测试配置
sudo systemctl restart nginx  # 重启 Nginx

配置 Apache
  1. 编辑 Apache 配置文件,通常为 /etc/httpd/conf.d/ssl.conf 或你的虚拟主机配置文件。

    sudo vi /etc/httpd/conf.d/ssl.conf
    
  2. 添加或修改 VirtualHost 块启用 HTTPS:

    <VirtualHost *:443>ServerName your_domain.com  # 替换为你的域名SSLEngine onSSLCertificateFile /etc/ssl/certs/selfsigned.crtSSLCertificateKeyFile /etc/ssl/private/selfsigned.keyDocumentRoot "/var/www/html"<Directory "/var/www/html">AllowOverride AllRequire all granted</Directory>
    </VirtualHost>
    
  3. 测试 Apache 配置并重启 Apache:

    sudo apachectl configtest  # 测试配置
    sudo systemctl restart httpd  # 重启 Apache
    

四、打开防火墙端口

确保防火墙允许 HTTPS 流量(通常是端口 443):

sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

完成

现在,你的测试服务器应该已经成功配置自签名证书并支持 HTTPS!你可以通过访问 https://your_domain.com 来测试。

注意事项

  • 浏览器警告:由于这是自签名证书,浏览器可能会显示安全警告,你可以选择忽略此警告以继续访问。
  • 替换为公用证书一般情况下,建议在生产环境中使用由受信任的证书颁发机构(CA)颁发的证书以确保安全性。 (可以申请一些机构的免费CA证书, 这里是测试服环境, 就直接使用自签名证书了)

如果你在操作过程中遇到任何问题,欢迎随时问我!


 


 Windows环境下, 升级http到https

生成和使用自签名证书通常分为两个部分:生成证书 和 使用证书。下面将详细介绍这两个步骤。

一、生成自签名证书

1. 使用 OpenSSL 生成自签名证书

如果你选择使用 OpenSSL,也可以按照以下步骤:

步骤 1:确保安装 OpenSSL

下载并安装 OpenSSL。

步骤 2:打开命令提示符

  1. 在 Windows 搜索框中输入 cmd 打开命令提示符。

步骤 3:生成私钥

运行以下命令生成私钥:

openssl genrsa -out private.key 2048

如果提示openssl 命令不存在, 将其安装路径加入到系统环境变量中, 重新打开cmd窗口, 重新执行即可

步骤 4:生成证书请求(CSR)

运行以下命令生成证书请求:

openssl req -new -key private.key -out request.csr

步骤 5:生成自签名证书

执行以下命令生成自签名证书:

openssl x509 -req -days 365 -in request.csr -signkey private.key -out certificate.crt

二、使用自签名证书

生成自签名证书后,可以根据需要将其应用于不同场景,比如:Web 服务器(例如 Nginx 或 Apache),应用程序,或者 VPN。

1. 配置 Web 服务器使用自签名证书

以下是如何在 Nginx 和 Apache 中使用自签名证书的示例。

Nginx 中使用自签名证书

  1. 将生成的 certificate.crt 和 private.key 文件移动到 Nginx 的配置目录(例如 /etc/nginx/ssl/)。

  2. 编辑 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/default):

server {listen 443 ssl;server_name yourdomain.com;  # 你的域名ssl_certificate /etc/nginx/ssl/certificate.crt;  # 证书文件路径ssl_certificate_key /etc/nginx/ssl/private.key;  # 私钥文件路径location / {root   html;  # 你的根目录index  index.html index.htm;}
}

  1. 重启 Nginx 以应用配置:
sudo systemctl restart nginx

Apache 中使用自签名证书

  1. 将 certificate.crt 和 private.key 文件放到 Apache 的 SSL 目录(例如 /etc/ssl/)。

  2. 编辑 Apache 配置文件(通常是 /etc/httpd/conf/httpd.conf 或者 /etc/apache2/sites-available/default-ssl.conf):

<VirtualHost *:443>ServerName yourdomain.comSSLEngine onSSLCertificateFile "/etc/ssl/certificate.crt"  # 证书路径SSLCertificateKeyFile "/etc/ssl/private.key"  # 私钥路径DocumentRoot "/var/www/html"  # 你的网站根目录
</VirtualHost>

  1. 启用 SSL 模块并重启 Apache:
sudo a2enmod ssl
sudo systemctl restart apache2

2. 浏览器信任自签名证书

由于是自签名证书,浏览器可能会警告连接不安全。你可以通过将证书导入到机器的受信任的根证书颁发机构来解决这个问题:

  • 双击 certificate.crt 文件,选择“安装证书”。
  • 选择“本地计算机”,然后选择“将所有的证书放入下列存储”。
  • 选择“受信任的根证书颁发机构”。

总结

这样,你就完成了从生成自签名证书到在 Web 服务器上使用它的整个流程!如果有任何问题,或者你需要更多帮助,请随时告诉我!😄

后续补充

...

3.问题/补充

1. 也可以借助自动化工具来实现 --- 但是也有点麻烦,要安装一些软件包

GitHub - FiloSottile/mkcert: A simple zero-config tool to make locally trusted development certificates with any names you'd like.

个人觉得比较麻烦,不如直接按照上面步骤来操作更直接更快~

后续补充

...

相关文章:

Http升级为Https - 开发/测试服环境

1.应用场景 主要用于开发/测试服环境将http升级为https, 防止前端web(浏览器)出现Mixed Content报错; 2.学习/操作 1.文档阅读 deepseek 问答; 2.整理输出 报错信息: Mixed Content: The page at <URL> was loaded over HTTPS, but requested an insecure XMLHttpRequ…...

C语言预编译

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文一、预处理的作用与流程&#xf…...

算法刷题-字符串-151.反转单词

题目 给一串字符串&#xff0c;里面有若干单词&#xff0c;以空格界定单词的结束&#xff0c;翻转其中的单词 输入&#xff1a;s " hello world " 输出&#xff1a;“world hello” 需要注意的是&#xff0c;给定的字符串可能存在头空格、尾空格以及中间的空格数量…...

单片机裸机编程:状态机与其他高效编程框架

在单片机裸机编程中&#xff0c;状态机是一种非常强大的工具&#xff0c;能够有效管理复杂的逻辑和任务切换。除了状态机&#xff0c;还有其他几种编程模式可以在不使用 RTOS 的情况下实现高效的程序设计。以下是一些常见的方法&#xff1a; 1. 状态机编程 状态机通过定义系统…...

图表控件Aspose.Diagram入门教程:使用 Python 将 VSDX 转换为 PDF

将VSDX转换为PDF可让用户轻松共享图表。PDF 文件保留原始文档的布局和设计。它们广泛用于演示文稿、报告和文档。在这篇博文中&#xff0c;我们将探讨如何在 Python 中将 VSDX 转换为 PDF。 本文涵盖以下主题&#xff1a; Python VSDX 到 PDF 转换器库使用 Python 将 VSDX 转…...

DPVS-1:编译安装DPVS (ubuntu22.04)

操作系统 rootubuntu22:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy rootubuntu22:~# 前置软件准备 apt install git apt install meson apt install gcc ap…...

即将发布书籍 - Yocto项目实战教程:高效定制嵌入式Linux系统

以下这本书《Yocto项目实战教程&#xff1a;高效定制嵌入式Linux系统》即将发布&#xff0c;现在请哪位大佬出山写一个序或者推荐&#xff0c;有兴趣的大佬&#xff0c;请联系我&#xff01; Git仓库地址&#xff1a; https://github.com/jerrysundev/Yocto-Project-Book.git …...

Git 常用指令及其说明

配置相关 # 配置全局用户名 git config --global user.name "YourUsername"# 配置全局邮箱 git config --global user.email "your.emailexample.com"说明&#xff1a;这两条命令用于设置 Git 全局的用户名和邮箱&#xff0c;在提交代码时&#xff0c;这些…...

nginx代理后502

直接访问 ​https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions正常 使用nginx代理后访问出现502 server {listen 9999;server_name 172.21.3.78;location ^~ /compatible-mode {proxy_pass https://dashscope.aliyuncs.com;}location / {proxy_pass…...

大模型WebUI:Gradio全解12——LangChain原理及其agent构建Gradio(1)

大模型WebUI:Gradio全解12——LangChain原理及其agent构建Gradio(1) 前言本篇摘要12. LangChain原理及其agent构建Gradio12.1 LangChain概念及优势分析12.1.1 概念12.1.2 标准化组件接口1. 示例:聊天模型2. 示例:检索器12.1.3 编排组件12.1.4 便于部署12.1.5 可观测性和评…...

【Unity】鱼群效果模拟

鱼群效果模拟 文章目录 鱼群效果模拟Boid算法实现方式version1_CPUversion2_GPUversion3_Multilaterationversion4_Bitonic_Sorting &#xff08;GPU友好&#xff09;version5_Skinning &#xff08;TODO&#xff09; 细节项优化项参考链接 Boid算法 Boid算法是一种模拟群体行…...

PHP入门基础学习五(函数1)

函数 一、概念 1、什么是函数? 函数:封装一段用于完成特定功能的代码 当使用一个函数时,只需关心函数的参数和返回值,就可以完成一个特定的功能 2、php中的函数 PHP 的真正威力源自于它的函数,PHP 中提供了超过 1000 个内建的函数。 php函数分为: 系统内部函数和自…...

微信小程序 - 页面跳转(wx.navigateTo、wx.redirectTo、wx.switchTab、wx.reLaunch)

API 跳转 1、wx.navigateTo &#xff08;1&#xff09;基本介绍 功能&#xff1a;保留当前页面&#xff0c;跳转到应用内的某个页面&#xff0c;使用该方法跳转后可以通过返回按钮返回到原页面 使用场景&#xff1a;适用于需要保留当前页面状态&#xff0c;后续还需返回的情…...

Typora的Github主题美化

[!note] Typora的Github主题进行一些自己喜欢的修改&#xff0c;主要包括&#xff1a;字体、代码块、表格样式 美化前&#xff1a; 美化后&#xff1a; 一、字体更换 之前便看上了「中文网字计划」的「朱雀仿宋」字体&#xff0c;于是一直想更换字体&#xff0c;奈何自己拖延症…...

2.3 变量

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 变量是用来存放某个值的数据&#xff0c;它可以表示一个数字、一个字符串、一个结构、一个类等。变量包含名称、类型和值。在代码中…...

Docker:Docker从入门到精通(一)- Docker简介

一、前言 通过本专栏的学习&#xff0c;我们将了解   1. 掌握Docker基础知识&#xff0c;能够理解Docker镜像与容器的概念   2. 完成Docker安装与启动   3. 掌握Docker镜像与容器相关命令   4. 掌握Tomcat Nginx 等软件的常用应用的安装   5. 掌握docker迁移与备份相…...

【复习】Redis

数据结构 Redis常见的数据结构 String&#xff1a;缓存对象Hash&#xff1a;缓存对象、购物车List&#xff1a;消息队列Set&#xff1a;点赞、共同关注ZSet&#xff1a;排序 Zset底层&#xff1f; Zset底层的数据结构是由压缩链表或跳表实现的 如果有序集合的元素 < 12…...

在Spring Boot+Vue前后端分离的项目中使用JWT实现基本的权限校验

说明 在 Spring Boot + Vue 前后端分离的项目中,如果不使用第三方服务(如 Spring Security、Shiro 等),可以通过自定义实现基本的权限校验。 使用JWT实现步骤 以下是实现步骤: 1. 设计权限模型 通常权限模型包括: 用户(User):系统的使用者。角色(Role):用户的权…...

蓝桥杯单片机组第十二届省赛第二批次

前言 第十二届省赛涉及知识点&#xff1a;NE555频率数据读取&#xff0c;NE555频率转换周期&#xff0c;PCF8591同时测量光敏电阻和电位器的电压、按键长短按判断。 本试题涉及模块较少&#xff0c;题目不难&#xff0c;基本上准备充分的都能完整的实现每一个功能&#xff0c;并…...

伪404兼容huawei生效显示404

根据上述思考&#xff0c;以下是详细的中文分步说明&#xff1a; --- **步骤 1&#xff1a;获取目标设备的User-Agent信息** 首先&#xff0c;我们需要收集目标设备的User-Agent字符串&#xff0c;包括&#xff1a; 1. **iPhone设备的User-Agent**&#xff1a; Mozi…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...

mac:大模型系列测试

0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何&#xff0c;是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试&#xff0c;是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...

聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇

根据 QYResearch 发布的市场报告显示&#xff0c;全球市场规模预计在 2031 年达到 9848 万美元&#xff0c;2025 - 2031 年期间年复合增长率&#xff08;CAGR&#xff09;为 3.7%。在竞争格局上&#xff0c;市场集中度较高&#xff0c;2024 年全球前十强厂商占据约 74.0% 的市场…...

JavaScript 标签加载

目录 JavaScript 标签加载script 标签的 async 和 defer 属性&#xff0c;分别代表什么&#xff0c;有什么区别1. 普通 script 标签2. async 属性3. defer 属性4. type"module"5. 各种加载方式的对比6. 使用建议 JavaScript 标签加载 script 标签的 async 和 defer …...

PostgreSQL 对 IPv6 的支持情况

PostgreSQL 对 IPv6 的支持情况 PostgreSQL 全面支持 IPv6 网络协议&#xff0c;包括连接、存储和操作 IPv6 地址。以下是详细说明&#xff1a; 一、网络连接支持 1. 监听 IPv6 连接 在 postgresql.conf 中配置&#xff1a; listen_addresses 0.0.0.0,:: # 监听所有IPv4…...