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

  1. 这将生成有效期为 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 on
        SSLCertificateFile /etc/ssl/certs/selfsigned.crt
        SSLCertificateKeyFile /etc/ssl/private/selfsigned.key
    
        DocumentRoot "/var/www/html"
        <Directory "/var/www/html">
            AllowOverride All
            Require 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.com

    SSLEngine on
    SSLCertificateFile "/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.

2. 

后续补充

...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/973408.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网页制作01-html,css,javascript初认识のhtml的基本标记

一、 Html简介 英文全称是 hyper text markup language,超文本标记语言,是全球广域网上描述网页内容和外观的标准. Html作为一款标记语言,本身不能显示在浏览器中.标记语言经过浏览器的解释和编译,才能正确地反映html标记语言的内容. 1.html 的基本标记 1&#xff09;头部标…

分布式 IO 模块:水力发电设备高效控制的关键

在能源领域不断追求高效与可持续发展的今天&#xff0c;水力发电作为一种清洁、可再生的能源形式&#xff0c;备受关注。而要实现水力发电设备的高效运行&#xff0c;精准的控制技术至关重要。分布式 IO 模块&#xff0c;正悄然成为水力发电设备高效控制的核心力量。 传统挑战 …

【前端框架】vue2和vue3的区别详细介绍

Vue 3 作为 Vue 2 的迭代版本&#xff0c;在性能、语法、架构设计等多个维度均有显著的变革与优化。以下详细剖析二者的区别&#xff1a; 响应式系统 Vue 2 实现原理&#xff1a;基于 Object.defineProperty() 方法实现响应式。当一个 Vue 实例创建时&#xff0c;Vue 会遍历…

使用linux脚本部署discuz博客(详细注释版)

使用脚本部署一个discuzz项目 1.显示当前环境状态 防火墙状态 selinux状态 httpd状态 由上可知&#xff0c;虚拟机已处于最初始状态 2.脚本编写 #!/bin/bash #这是一个通过脚本来部署discuzz博客 firewalld关闭 systemctl stop firewalld if [ $? -eq 0 ];then echo "…

【代码审计】-Tenda AC 18 v15.03.05.05 /goform接口文档漏洞挖掘

路由器&#xff1a;Tenda AC 18 v15.03.05.05 固件下载地址&#xff1a;https://www.tenda.com.cn/material?keywordac18 1./goform/SetSpeedWan 接口文档&#xff1a; formSetSpeedWan函数中speed_di参数缓冲区溢出漏洞&#xff1a; 使用 binwalk -eM 解包固件&#xff0c…

正式页面开发-登录注册页面

整体路由设计&#xff1a; 登录和注册的切换是切换组件或者是切换内容&#xff08;v-if和 v-else)&#xff0c;因为点击两个之间路径是没有变化的。也就是登录和注册共用同一个路由。登录是独立的一级路由。登录之后进到首页&#xff0c;有三个大模块&#xff1a;文章分类&…

Unity 位图字体

下载Bitmap Font Generator BMFont - AngelCode.com 解压后不用安装直接双击使用 提前设置 1、设置Bit depth为32 Options->Export options 2、清空所选字符 因为我们将在后边导入需要的字符。 Edit->Select all chars 先选择所有字符 Edit->Clear all chars i…

双重差分学习笔记

双重差分适用的研究场景&#xff1a; 研究某项政策或者冲击造成的影响 例如&#xff0c;某某小学在2024.12.12日颁布了小红花激励措施&#xff0c;我们要研究这项措施对学生成绩的影响&#xff0c;此时&#xff0c;就可以使用双重差分模型。 双重差分适用的数据类型&#xf…

项目设置内网 IP 访问实现方案

在我们平常的开发工作中&#xff0c;项目开发、测试完成后进行部署上线。比如电商网站、新闻网站、社交网站等&#xff0c;通常对访问不会进行限制。但是像企业内部网站、内部管理系统等&#xff0c;这种系统一般都需要限制访问&#xff0c;比如内网才能访问等。那么一个网站应…

数仓搭建(hive):DWB层(基础数据层)

维度退化: 通过减少表的数量和提高数据的冗余来优化查询性能。 在维度退化中&#xff0c;相关的维度数据被合并到一个宽表中&#xff0c;减少了查询时需要进行的表连接操作。例如&#xff0c;在销售数据仓库中&#xff0c;客户信息、产品信息和时间信息等维度可能会被合并到一…

多模态特征提取与融合助力高光谱+LiDAR数据分类性能飞跃

目录 论文解读 总体架构 CMIIE 模块工作模式 MLFFC模块工作模式 论文解读 提出了一种新的多模态特征提取模块CMIIE,可以捕获高光谱和LiDAR数据之间的互补信息。设计了一个多层特征融合分类模块MLFFC,通过对不同层级的特征进行融合来提高分类性能。使用对抗学习策略来指导网…

Flutter 正在推进全新 PlatformView 实现 HCPP, 它又用到了 Android 上的什么黑科技

跨平台开发里的 PlatformView 实现一直是一个经久不衰的话题&#xff0c;在之前的 《深入 Flutter 和 Compose 的 PlatformView 实现对比》 我们就详细聊过 Flutter 和 Compose 在 PlatformView 实现上的异同之处&#xff0c;也聊到了 Compose 为什么在相同实现上对比 Flutter …

Qt/C++面试【速通笔记一】

Qt 信号与槽机制 什么是信号&#xff08;Signal&#xff09;和槽&#xff08;Slot&#xff09;&#xff1f; 在Qt中&#xff0c;信号&#xff08;Signal&#xff09;和槽&#xff08;Slot&#xff09;是实现对象之间通信的一种机制。信号是对象在某些事件发生时发出的通知&…

《跟李沐学 AI》AlexNet论文逐段精读学习心得 | PyTorch 深度学习实战

前一篇文章&#xff0c;使用 AlexNet 实现图片分类 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 本篇文章内容来自于学习 9年后重读深度学习奠基作之一&#xff1a;AlexNet【下】【论文精读】】的心得。 《跟李沐…

【科研绘图系列】R语言绘制小提琴图、散点图和韦恩图(violin scatter plot Venn)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载画图1画图2画图3画图4画图5画图6画图7参考介绍 【科研绘图系列】R语言绘制小提琴图、散点图和韦恩图(violin & scatter plot & Venn) 加载R包 library…

IMX6ULL的ALT0、ALT1、ALT2、ALT3、ALT4等是啥意思?

在IMX6ULL的手册IMX6ULLRM.pdf中&#xff0c;发现了题目中这些描述&#xff0c;相关截图如下&#xff1a; 那么红框中的ALT0、ALT1、ALT2、ALT3、ALT4等是啥意思呢&#xff1f; 在IMX6ULL及其他NXP&#xff08;Freescale&#xff09;芯片中&#xff0c;ALT0、ALT1、ALT2、ALT…

Android Http-server 本地 web 服务

时间&#xff1a;2025年2月16日 地点&#xff1a;深圳.前海湾 需求 我们都知道 webview 可加载 URI&#xff0c;他有自己的协议 scheme&#xff1a; content:// 标识数据由 Content Provider 管理file:// 本地文件 http:// 网络资源 特别的&#xff0c;如果你想直接…

DeepSeek 冲击(含本地化部署实践)

DeepSeek无疑是春节档最火爆的话题&#xff0c;上线不足一月&#xff0c;其全球累计下载量已达4000万&#xff0c;反超ChatGPT成为全球增长最快的AI应用&#xff0c;并且完全开源。那么究竟DeepSeek有什么魔力&#xff0c;能够让大家趋之若鹜&#xff0c;他又将怎样改变世界AI格…

神经网络八股(1)

1.什么是有监督学习&#xff0c;无监督学习 有监督学习是带有标签的&#xff0c;无监督学习是没有标签的&#xff0c;简单来说就是有监督学习的输入输出都是固定的&#xff0c;已知的&#xff0c;无监督学习输入是已知的&#xff0c;输出是不固定的&#xff0c;无监督学习是通…

DeepSeek 助力 Vue 开发:打造丝滑的瀑布流布局(Masonry Layout)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…