如何启用 HTTPS 并配置免费的 SSL 证书

devtools/2025/3/19 3:57:33/

https://i-blog.csdnimg.cn/direct/e026247eb9224a0fbad680deb7ec2c46.jpeg" />

引言

HTTPS 已成为现代网站安全性的基础要求。通过 SSL/TLS 证书对数据进行加密,不仅可以保护用户隐私,还能提升搜索引擎排名并增强用户信任。本指南将详细介绍如何通过 Let's Encrypt(免费、自动化的证书颁发机构)为您的网站启用 HTTPS,并涵盖主流服务器(Nginx/Apache/IIS/Tomcat)的配置方法。


一、准备工作

  1. 域名所有权
    确保已拥有一个已解析到服务器 IP 的域名(如 example.com)。

  2. 服务器权限
    需具备服务器的 root 或管理员权限。

  3. 开放端口
    确保服务器防火墙开放 80(HTTP) 和 443(HTTPS) 端口。


二、获取免费 SSL 证书(Let's Encrypt)

方法 1:使用 Certbot 自动化工具(推荐)

Certbot 是 Let's Encrypt 官方推荐的证书管理工具,支持自动申请和续期。

bash

复制

# 安装 Certbot(以 Ubuntu 为例)
sudo apt update
sudo apt install certbot# 申请证书(适用于 Nginx/Apache)
sudo certbot certonly --nginx      # 如果使用 Nginx
sudo certbot certonly --apache     # 如果使用 Apache# 手动模式(适用于其他服务器)
sudo certbot certonly --manual --preferred-challenges dns -d example.com -d www.example.com
  • 证书路径:/etc/letsencrypt/live/example.com/
    包含以下关键文件:

    • fullchain.pem: 证书链

    • privkey.pem: 私钥

方法 2:手动生成证书(适用于高级用户)

  1. 生成 CSR(证书签名请求)和私钥:

    bash

    复制

    openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr
  2. 通过 Let's Encrypt 或其他 ACME 客户端完成域名验证(DNS 或 HTTP 验证)。


三、配置服务器 SSL 证书

1. Nginx 配置示例

编辑站点配置文件(如 /etc/nginx/sites-available/example.com):

nginx

复制

server {listen 443 ssl;server_name example.com;ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;# 启用 TLS 1.3 和现代加密套件ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;ssl_prefer_server_ciphers on;# 其他配置...
}# 强制 HTTP 跳转到 HTTPS
server {listen 80;server_name example.com;return 301 https://$host$request_uri;
}

重启服务:

bash

复制

sudo systemctl restart nginx

2. Apache 配置示例

编辑虚拟主机文件(如 /etc/apache2/sites-available/example.com.conf):

apache

复制

<VirtualHost *:443>ServerName example.comSSLEngine onSSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem# 启用 HSTSHeader always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
</VirtualHost># 重定向 HTTP 到 HTTPS
<VirtualHost *:80>ServerName example.comRedirect permanent / https://example.com/
</VirtualHost>

启用模块并重启:

bash

复制

sudo a2enmod ssl
sudo systemctl restart apache2

3. IIS 配置(Windows Server)

  1. 打开 IIS 管理器 → 选择站点 → 绑定 → 添加 HTTPS 绑定。

  2. 导入证书:

    • 将 fullchain.pem 和 privkey.pem 合并为 PFX 格式:

      bash

      复制

      openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in fullchain.pem
    • 在 IIS 中选择导入的 PFX 文件,并设置密码。

4. Tomcat 配置(Java 环境)

编辑 server.xml

xml

复制

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="150" SSLEnabled="true"><SSLHostConfig><Certificate certificateFile="/path/to/fullchain.pem"certificateKeyFile="/path/to/privkey.pem"type="RSA" /></SSLHostConfig>
</Connector>

运行 HTML


四、证书自动续期

Let's Encrypt 证书有效期为 90 天,需定期续期。

bash

复制

# 测试续期命令
sudo certbot renew --dry-run# 添加定时任务(crontab -e)
0 3 * * * /usr/bin/certbot renew --quiet

五、验证与故障排除

  1. 在线检测工具

    • SSL Labs Test

    • Why No Padlock?

  2. 常见错误

    • 证书不信任:确保证书链完整(包含中间证书)。

    • 混合内容警告:页面内资源(如图片、JS)必须全部使用 HTTPS。

    • 端口冲突:确保没有其他进程占用 80/443 端口。


六、总结

通过 Let's Encrypt 和自动化工具,您可以零成本实现 HTTPS 的部署。定期检查证书状态、启用 HSTS 和保持加密套件的更新是维持安全性的关键步骤。


http://www.ppmy.cn/devtools/168234.html

相关文章

QAI AppBuilder 快速上手(7):目标检测应用实例

YOLOv8_det是YOLO 系列目标检测模型&#xff0c;专为高效、准确地检测图像中的物体而设计。该模型通过引入新的功能和改进点&#xff0c;如因式分解卷积&#xff08;factorized convolutions&#xff09;和批量归一化&#xff08;batch normalization&#xff09;&#xff0c;在…

鸿蒙的 Stage 模型

鸿蒙的 Stage 模型 在鸿蒙 Next 开发中&#xff0c;Stage 模型是应用开发的核心架构之一&#xff0c;它为开发者提供了一种高效、灵活的方式来构建分布式应用。本文将详细介绍鸿蒙 Stage 模型的基本概念、应用配置文件的使用、UIAbility 组件的介绍以及如何通过 Stage 模型开发…

2025-03-14 学习记录--C/C++-PTA 习题2-1 求整数均值

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 习题2-1 求整数均值 本题要求编写程序&#xff0c;计算4个整数的和与平均值。题目保证输入与输出均在整型范…

无人机3维路径规划,170余种优化算法随随意切换,详细对比实验,附Python代码

声明&#xff1a;对于作者的原创代码&#xff0c;禁止转售倒卖&#xff0c;违者必究&#xff01; 本期代码&#xff0c;利用强大的python库——mealpy&#xff0c;实现无人机3维路径规划设计。可以非常方便的对比170种优化算法&#xff0c;让你的论文不再乏力&#xff01; meal…

用Python玩转数据可视化:从创意到可解释性的完美结合

用Python玩转数据可视化&#xff1a;从创意到可解释性的完美结合 引言 在当今数据驱动的世界中&#xff0c;数据可视化已成为理解复杂现象的关键工具。它不仅帮助我们以更直观的方式呈现数据&#xff0c;还能激发洞察力和决策支持。然而&#xff0c;普通的数据可视化往往难以…

【计算机网络】浏览器组成、工作原理、页面渲染流程...

1、一个页面从输入URL到页面加载完的过程中都发生了什么&#xff1f; 不分析硬件层面&#xff0c;一个简化的过程&#xff1a; ① 在接收到用户输入的网址后&#xff0c;浏览器会开启一个线程来处理这个请求&#xff0c;对用户输入的URL地址进行分析判断&#xff0c;如果是H…

【自学笔记】Redis基础知识点总览-持续更新

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Redis基础知识点总览1. Redis简介2. Redis数据类型2.1 字符串&#xff08;String&#xff09;2.2 哈希&#xff08;Hash&#xff09;2.3 列表&#xff08;List&…

《解锁华为黑科技:MindSpore+鸿蒙深度集成奥秘》

在数字化浪潮汹涌澎湃的当下&#xff0c;人工智能与操作系统的融合已成为推动科技发展的核心驱动力。华为作为科技领域的先锋&#xff0c;其AI开发框架MindSpore与鸿蒙系统的深度集成备受瞩目&#xff0c;开启了智能生态的新篇章。 华为MindSpore&#xff1a;AI框架的创新先锋…