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.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
编辑 Apache 配置文件,通常为 /etc/httpd/conf.d/ssl.conf 或你的虚拟主机配置文件。 sudo vi /etc/httpd/conf.d/ssl.conf
添加或修改 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>
测试 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证书, 这里是测试服环境, 就直接使用自签名证书了)
如果你在操作过程中遇到任何问题,欢迎随时问我! 后续补充 ... |