96SEO 2025-10-28 06:06 0
在CentOS 7.6平台下使用OpenSSL给Apache做自签名证书,并给Apache设置HTTPS的SSL证书。

# uname -r
3.10.0-957.el7.x86_64
# cat /etc/redhat-release
CentOS Linux release 7.6.1810
# rpm -qa |grep httpd
httpd-tools-2.4.6-90.el7.centos.x86_64
httpd-2.4.6-9.el7.centos.x86_64
先说说确保你已经安装了Apache HTTP服务器和相关的SSL模块。你可以使用以下命令来安装它们:
sudo yum install httpd mod_ssl
你可以通过多种方式获取SSL证书,包括从Let’s Encrypt免费获取、购买商业证书或使用自签名证书。
本教程将使用OpenSSL生成自签名证书。
在Apache安装目录下创建cert目录,并将以下命令保存为生成自签名证书的脚本:
sudo vi /etc/httpd/cert/generate_ssl.sh
#!/bin/bash
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/cert/apache.key -out /etc/httpd/cert/apache.crt
echo "Self-signed SSL certificate generated successfully."
运行脚本生成自签名证书:
sudo chmod +x /etc/httpd/cert/generate_ssl.sh
sudo ./generate_ssl.sh
编辑Apache的配置文件来设置SSL虚拟主机。
sudo vi /etc/httpd/conf.d/ssl.conf
ServerAdmin webmaster@localhost
DocumentRoot "/var/www/html"
SSLEngine on
SSLCertificateFile /etc/httpd/cert/apache.crt
SSLCertificateKeyFile /etc/httpd/cert/apache.key
SSLCipherSuite HIGH:!aNULL:!MD5
SSLHonorCipherOrder on
SSLProtocol all -SSLv2 -SSLv3
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^$ https://%{HTTP_HOST}%{REQUEST_URI}
保存并关闭文件后重启Apache服务以应用更改:
sudo systemctl restart httpd
你可以使用浏览器访问你的域名,检查是否显示了平安的连接。你也可以使用以下命令来验证SSL配置:
sudo openssl s_client -connect yourdomain.com:443
这将显示SSL连接的详细信息,包括证书链。
如果你选择使用Let’s Encrypt,可以使用Certbot工具来自动化这个过程:
sudo yum install certbot python2-certbot-apache
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
Certbot会自动配置Apache并启用SSL。
通过以上步骤,你应该能够在CentOS系统中成功配置Apache以使用SSL证书。
Demand feedback