当前位置: 首页 > 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…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...