当前位置:首页 > Centos > 正文

CentOS SSL证书配置(手把手教你为Apache/Nginx部署HTTPS)

在当今互联网环境中,网站安全至关重要。使用SSL/TLS证书启用HTTPS不仅能保护用户数据,还能提升搜索引擎排名。本文将详细讲解如何在CentOS系统上为常见的Web服务器(如Apache和Nginx)配置SSL证书,即使你是Linux新手也能轻松上手。

CentOS SSL证书配置(手把手教你为Apache/Nginx部署HTTPS) SSL证书配置  Apache HTTPS配置 Nginx SSL安装 Linux服务器安全 第1张

准备工作

在开始之前,请确保你已满足以下条件:

  • 一台运行 CentOS 7/8/9 的服务器
  • 已安装 Apache 或 Nginx Web 服务器
  • 拥有一个域名并已正确解析到你的服务器IP
  • 拥有有效的 SSL 证书(可从 Let's Encrypt 免费获取,或从商业CA购买)

方法一:使用 Let's Encrypt 免费获取 SSL 证书

Let's Encrypt 是一个免费、自动化、开放的证书颁发机构。我们使用 Certbot 工具来申请证书。

1. 安装 Certbot

对于 CentOS 7/8/9,执行以下命令:

# CentOS 7sudo yum install -y epel-releasesudo yum install -y certbot# CentOS 8/9sudo dnf install -y epel-releasesudo dnf install -y certbot

2. 获取证书

假设你的域名为 example.com,且Web服务已停止(或使用webroot方式):

# 临时停止Web服务(以Apache为例)sudo systemctl stop httpd# 获取证书sudo certbot certonly --standalone -d example.com -d www.example.com

成功后,证书将保存在 /etc/letsencrypt/live/example.com/ 目录下。

方法二:配置 Apache 启用 HTTPS

如果你使用的是 Apache,请按以下步骤操作。

1. 安装 mod_ssl 模块

sudo yum install -y mod_ssl   # CentOS 7sudo dnf install -y mod_ssl   # CentOS 8/9

2. 配置虚拟主机

编辑 SSL 配置文件(通常位于 /etc/httpd/conf.d/ssl.conf),或创建新的虚拟主机配置:

<VirtualHost *:443>    ServerName example.com    DocumentRoot /var/www/html    SSLEngine on    SSLCertificateFile "/etc/letsencrypt/live/example.com/fullchain.pem"    SSLCertificateKeyFile "/etc/letsencrypt/live/example.com/privkey.pem"    <Directory "/var/www/html">        AllowOverride All        Require all granted    </Directory></VirtualHost>

3. 重启 Apache

sudo systemctl restart httpd

方法三:配置 Nginx 启用 HTTPS

如果你使用的是 Nginx,请参考以下步骤。

1. 编辑 Nginx 站点配置

通常配置文件位于 /etc/nginx/conf.d/default.conf/etc/nginx/sites-available/

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;    root /usr/share/nginx/html;    index index.html;    location / {        try_files $uri $uri/ =404;    }}

2. 测试并重载 Nginx

sudo nginx -t          # 测试配置是否正确sudo systemctl reload nginx   # 重载配置

自动续期 Let's Encrypt 证书

Let's Encrypt 证书有效期为90天,建议设置自动续期。Certbot 已自带定时任务:

# 测试续期命令sudo certbot renew --dry-run# 添加到 crontab(每天凌晨2点检查)echo "0 2 * * * /usr/bin/certbot renew --quiet" | sudo crontab -

总结

通过本教程,你应该已经成功在 CentOS 服务器上完成了 SSL证书配置,无论是 Apache 还是 Nginx。启用 HTTPS 不仅能提升网站安全性,也是现代 Web 开发的基本要求。记住定期检查证书状态,并确保自动续期机制正常工作。

关键词回顾:

  • CentOS SSL证书配置:本文核心主题
  • Apache HTTPS配置:适用于使用 Apache 的用户
  • Nginx SSL安装:适用于使用 Nginx 的用户
  • Linux服务器安全:整体安全实践的重要组成部分