一、安装Apache服务器及SSL模块
1、安装Apache服务器:执行sudo yum install httpd
命令,安装apache服务器及其相关依赖,安装完成后,使用systemctl start httpd
命令启动Apache服务,并通过systemctl enable httpd
命令设置开机自启。
2、安装mod_ssl模块:执行sudo yum install mod_ssl
命令,为Apache安装SSL模块,该模块提供了TLS/SSL功能。

二、准备SSL证书文件
1、生成自签名证书(可选):如果只是内部测试环境,可以使用OpenSSL生成自签名证书,首先创建密钥文件和证书请求文件,如openssl genrsa out server.key 2048
生成私钥,openssl req new key server.key out server.csr
生成证书签名请求,然后根据证书签名请求生成自签名证书,openssl x509 req days 365 in server.csr signkey server.key out server.crt
。
2、获取CA证书(如果使用CA证书):如果是正式的生产环境,需要从受信任的证书颁发机构(CA)购买或申请SSL证书,将获得的证书文件(通常为.crt或.pem格式)和私钥文件(通常为.key格式)上传到CentOS 7服务器的相应目录中,如/etc/pki/tls/certs/
和/etc/pki/tls/private/
。
三、配置Apache使用SSL证书
1、编辑SSL配置文件:打开Apache的SSL配置文件/etc/httpd/conf.d/ssl.conf
,找到以下几行代码并取消注释,修改成自己的证书文件路径:
SSLCertificateFile /path/to/your/certificate.crt
SSLCertificateKeyFile /path/to/your/privatekey.key
如果购买了CA证书,还需要找到类似SSLCertificateChainFile /path/to/your/CA.crt
的行进行修改。

2、配置虚拟主机(可选):如果需要为特定域名配置SSL,可以在/etc/httpd/conf.d/
目录下创建一个新的虚拟主机配置文件,如example.com.conf
,并在其中添加类似以下的内容:
- <VirtualHost *:443>
- ServerName example.com
- DocumentRoot /var/www/html
- SSLEngine on
- SSLCertificateFile /path/to/your/certificate.crt
- SSLCertificateKeyFile /path/to/your/privatekey.key
- # 如果购买了CA证书,添加以下行
- # SSLCertificateChainFile /path/to/your/CA.crt
- </VirtualHost>
3、重启Apache服务:配置完成后,执行sudo systemctl restart httpd
命令重启Apache服务,使配置生效。
四、测试SSL配置
1、使用浏览器访问配置了SSL的网站,检查浏览器地址栏是否显示“安全提示”,以及是否有绿色的锁图标,表示SSL配置成功。
2、也可以使用命令行工具如curl
进行测试,例如curl I https://yourwebsite.com
,查看返回的HTTP头信息中是否包含SSL相关的信息,如HTTP/2 200 ... SSL certificate verify ok
等。
五、常见问题及解决方法
1、端口问题:确保服务器的443端口已开放,可以通过firewallcmd listports
命令查看已开放的端口,若443端口未开放,可使用firewallcmd permanent addport=443/tcp
命令添加,并重启Firewalld服务。
2、权限问题:检查证书文件和私钥文件的权限是否正确,私钥文件应只有所有者可读,证书文件可由Web服务器用户读取。

六、FAQs
1、Q1:如何在CentOS 7上安装Apache服务器及SSL模块?
A1:在CentOS 7上安装Apache服务器及其SSL模块,首先执行sudo yum install httpd
命令安装Apache服务器及其相关依赖,并启动和设置开机自启,然后执行sudo yum install mod_ssl
命令为Apache安装SSL模块。
2、Q2:如何生成自签名证书?
A2:生成自签名证书可以使用OpenSSL工具,首先创建密钥文件和证书请求文件,如openssl genrsa out server.key 2048
生成私钥,openssl req new key server.key out server.csr
生成证书签名请求,然后根据证书签名请求生成自签名证书,openssl x509 req days 365 in server.csr signkey server.key out server.crt
。