主页 > 电脑硬件  > 

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

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

二、生成自签名证书      创建目录

检查并创建 /etc/ssl/private 目录:

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

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

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

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

生成私钥:

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

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

生成自签名证书:

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  # 这里填写你的域名或IP地址 Email Address []:your_email@example

这将生成有效期为 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 ;  # 替换为你的域名

    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

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

sudo vi /etc/httpd/conf.d/ssl.conf

添加或修改 VirtualHost 块启用 HTTPS:

<VirtualHost *:443> ServerName your_domain # 替换为你的域名 SSLEngine on SSLCertificateFile /etc/ssl/certs/selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/selfsigned.key DocumentRoot "/var/ /html" <Directory "/var/ /html"> AllowOverride All Require all granted </Directory> </VirtualHost>

测试 Apache 配置并重启 Apache:

sudo apachectl configtest # 测试配置 sudo systemctl restart httpd # 重启 Apache 四、打开防火墙端口

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

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

完成

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

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

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

 


 Windows环境下, 升级http到https

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

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

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

步骤 1:确保安装 OpenSSL

下载并安装 OpenSSL。

步骤 2:打开命令提示符

在 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 中使用自签名证书

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

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

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

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

Apache 中使用自签名证书

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

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

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

启用 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. 

后续补充

...

标签:

Http升级为Https-开发/测试服环境由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Http升级为Https-开发/测试服环境