下面以 CentOS + Apache(httpd) 为例,说明如何配置 SSL(HTTPS),包含「自签名证书」和「Let’s Encrypt 免费证书」两种方式,你可以按需选择。
sudo yum install httpd -y
sudo systemctl enable httpd
sudo systemctl start httpd
CentOS 7 一般已自带 mod_ssl:
sudo yum install mod_ssl openssl -y
安装后会出现:
/etc/httpd/conf.d/ssl.conf/etc/httpd/mods-available/ssl.conf(部分版本)sudo mkdir -p /etc/httpd/ssl
cd /etc/httpd/ssl
sudo openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout server.key \
-out server.crt
填写信息示例:
Country Name: CN
State: Beijing
Organization: MyCompany
Common Name: www.example.com # 必须是域名
编辑:
sudo vi /etc/httpd/conf.d/ssl.conf
修改关键项:
SSLCertificateFile /etc/httpd/ssl/server.crt
SSLCertificateKeyFile /etc/httpd/ssl/server.key
确保:
<VirtualHost _default_:443>
DocumentRoot "/var/www/html"
ServerName www.example.com:443
</VirtualHost>
sudo systemctl restart httpd
访问:
https://你的IP或域名
浏览器会提示“不安全”(自签名正常现象)
sudo yum install epel-release -y
sudo yum install certbot python2-certbot-apache -y
sudo certbot --apache -d www.example.com
域名必须已解析到服务器 IP
按提示选择:
sudo certbot renew --dry-run
在网站配置中加入:
<VirtualHost *:80>
ServerName www.example.com
RewriteEngine On
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
</VirtualHost>
确保开放 443 端口:
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
云服务器还要在 安全组 放行 443。
✅ Apache 启动失败
sudo apachectl configtest
✅ 证书路径错误
✅ CentOS 8 / Stream
dnf 代替 yum如果你愿意,可以告诉我:
我可以给你一份可直接用的配置文件。