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

server/2025/2/26 2:13:04/

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提供。

https://i-blog.csdnimg.cn/direct/3233c78dd1b24daf8ca254d1e0d59b87.png" width="478" />

生成自签名证书并在 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;
    }
}

https://i-blog.csdnimg.cn/direct/582b364b2ce74707946aa2811af2633c.png" width="452" />

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 来测试。

https://i-blog.csdnimg.cn/direct/c87d8eb761c6448ab044e1702c853ed6.png" width="584" />

注意事项

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

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


 


 Windows环境下, 升级httphttps

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

一、生成自签名证书

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

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

步骤 1:确保安装 OpenSSL

下载并安装 OpenSSL。

https://i-blog.csdnimg.cn/direct/04cee22d3a904f268d7270308dc01749.png" width="525" />

https://i-blog.csdnimg.cn/direct/5b51871539254f859534e0f346a29869.png" width="300" />

步骤 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://www.ppmy.cn/server/170663.html

相关文章

数据结构——字符串匹配KMP

首先明确几个概念&#xff1a; s[ ]: 主串 p[ ]: 模式串(用于匹配) next[ j ]&#xff1a;以p[ j ]结尾的p字符串的前后缀最大匹配值,也是当p[ j1 ]与s[ i ]不匹配时,j指针移动的下一位置。(需要预处理出来) AcWing - 算法基础课 代码如下&#xff1a; #include<iostre…

Qt 中集成mqtt协议

一&#xff0c;引入qmqtt 库 我是将整个头文件/源文件都添加到了工程中进行编译&#xff0c;这样 跨平台时 方便&#xff0c;直接编译就行了。 原始仓库路径&#xff1a;https://github.com/emqx/qmqtt/tree/master 二&#xff0c;使用 声明一个单例类&#xff0c;将订阅到…

Word(2010)排版技巧

设置标题样式 选择需要设置的标题 如下图所示。选择文字后&#xff0c;点击对应的样式即可设置。 设置标题格式 设置字体格式 设置段落格式 显示所有样式 标题样式展示 建议 建议新建一个正文样式&#xff0c;可以命名为正文1&#xff0c;因为所有的样式参考的“样式基准…

【Qt】数据库编程(SQLite API)

目录 一、文件夹的配置 二、编程工具的配置 1.指定库文件及其输出可执行文件位置 2.导入新添加的sqlite3.h头文件​编辑 三、使用SQLite常见API函数 1.打开数据库 2.关闭数据库 3.获取错误代码 4.获取错误信息 5.预编译SQL语句 6.绑定条件变量 7.结果集获取 8.行数据…

前端面试真题 2025最新版

文章目录 写在前文CSS怪异盒模型JS闭包闭包的形成闭包注意点 CSS选择器及优先级优先级 说说flex布局及相关属性Flex 容器相关属性&#xff1a;Flex 项目相关属性 响应式布局如何实现是否用过tailwindcss&#xff0c;有哪些好处好处缺点 说说对象的 prototype属性及原型说说 pro…

科普:“git“与“github“

Git与GitHub的关系可以理解为&#xff1a;Git是一种软件工具&#xff0c;而GitHub则是一个在线平台&#xff0c;它们是“一家子”。二者的关联最直接体现在你通过Git在GitHub仓库中clone软件包到你的机器中来。 具体来说&#xff1a; 一、Git 定义&#xff1a;Git是一个开源的…

Linux基本指令(上)

文章目录 目录1. Linux的介绍2. 基本指令2.1 ls 指令2.2 pwd 命令2.3 cd 指令2.4 touch 指令2.5 mkdir 指令2.6 rmdir 指令 && rm 指令2.7 man 指令2.8 cp 指令 目录 Linux的介绍基本指令 1. Linux的介绍 2. 基本指令 2.1 ls 指令 语法&#xff1a; ls [选项] [目录…

DeepSeek模型量化

技术背景 大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;&#xff0c;可以通过量化&#xff08;Quantization&#xff09;操作来节约内存/显存的使用&#xff0c;并且降低了通讯开销&#xff0c;进而达到加速模型推理的效果。常见的就是把Float16的浮…