![cover](https://img.flycat.tech/pg/202404/a872dbe732974d60b5f90396ddaf0d70684.webp)
如何配置云服务器 CentOS 7.0 系统 Apache HTTPS 服务
弄好SSL证书之后就可以开始配置HTTPS服务了。这里我直接使用的阿里云的PHP环境镜像,测试环境如下:
- CentOS 7.0 (https://www.centos.org/)
- Apache httpd 2.4.6 (http://httpd.apache.org)
- OpenSSL 1.0.1 (http://www.openssl.org/source)
### 1.连接到服务器 这里我用的是Xshell,连接方法就不说了,网上很多教程。 ### 2.安装mod_ssl模块 首先检查是否已安装SSL软件
[root@Ayase ~]# rpm -qa | grep mod_ssl
如果发现什么都没显示说明没有安装,没有安装mod_ssl模块,Web服务器就无法提供SSL服务。
[root@Ayase httpd]# rpm -qa | grep mod_ssl
[root@Ayase httpd]#
可使用yum在线更新方式安装。
[root@Ayase ~]# yum install -y mod_ssl //安装SSL软件
Dependencies Resolved
==================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================
Installing:
mod_ssl x86_64 1:2.4.6-80.el7.centos.1 updates 111 k
Updating for dependencies:
httpd x86_64 2.4.6-80.el7.centos.1 updates 2.7 M
httpd-devel x86_64 2.4.6-80.el7.centos.1 updates 196 k
httpd-tools x86_64 2.4.6-80.el7.centos.1 updates 90 k
openssl x86_64 1:1.0.2k-12.el7 base 492 k
openssl-libs x86_64 1:1.0.2k-12.el7 base 1.2 M
Transaction Summary
==================================================================================================================================================
Install 1 Package
Upgrade ( 5 Dependent packages)
Total download size: 4.8 M
Installed:
mod_ssl.x86_64 1:2.4.6-80.el7.centos.1
Dependency Updated:
httpd.x86_64 0:2.4.6-80.el7.centos.1 httpd-devel.x86_64 0:2.4.6-80.el7.centos.1 httpd-tools.x86_64 0:2.4.6-80.el7.centos.1
openssl.x86_64 1:1.0.2k-12.el7 openssl-libs.x86_64 1:1.0.2k-12.el7
Complete! //完成
安装成功后再次执行会显示版本信息:
[root@Ayase httpd]# rpm -qa | grep mod_ssl
mod_ssl-2.4.6-80.el7.centos.1.x86_64
3.下载与上传证书
从阿里云下载证书后一共是四个文件
在Apache的安装目录(/etc/httpd)下创建cert目录,并将上面四个文件上传到该目录。
[root@Ayase ~]# mkdir /etc/httpd/cert
[root@Ayase ~]# cd /etc/httpd/cert/
使用Xshell上传文件可点击工具栏的新建文件传输按钮,弹出框后点击取消会跳转到另一个标签页,此时可将四个文件直接拖到黑窗口进行上传。
4.配置SSL
首先编辑SSL配置文件,检查端口是否为443及前面是否有#号,LoadModule是指支持HTTP所需要的模块,如果没有LoadModule,可手动添加一行LoadModule ssl_module modules/mod_ssl.so
[root@Ayase ~]# vim /etc/httpd/conf.d/ssl.conf //编辑SSL配置文件,也可能是/etc/httpd/conf/extra/httpd-ssl.conf文件,与操作系统及安装方式有关)
LoadModule ssl_module modules/mod_ssl.so //支持SSL模块
#
# When we also provide SSL we have to listen to the
# the HTTPS port in addition.
#
Listen 443 https //http ssl默认端口为443,如果有#号需删除才可以使用
修改相应的证书信息(配置文件中这些条目并不是挨着的),可以在阿里云证书下载页面复制该信息然后将原有的注释掉。
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile /etc/httpd/cert/public.pem //你的对应证书文件路径
# 证书私钥配置
SSLCertificateKeyFile /etc/httpd/cert/111111111111111.key //你的对应证书文件路径(将文件名改成你自己的)
# 证书链配置,如果该属性开头有 '#'字符,请删除掉
SSLCertificateChainFile /etc/httpd/cert/chain.pem //你的对应证书文件路径
修改并退出。
5.配置防火墙
SSL服务必须在防火墙配置中开启443端口,HTTPS才可以对外连接。
[root@Ayase ~]# vim /etc/sysconfig/iptables
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT //SSL端口
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
防火墙配置完成后,必须重新启动防火墙服务,配置才会生效。
[root@Ayase ~]# service iptables restart
Redirecting to /bin/systemctl restart iptables.service
6.重启apache服务
一切配置完成后,必须重新启动apache服务,Apache配置都会生效。
[root@Ayase httpd]# service httpd restart
Redirecting to /bin/systemctl restart httpd.service
7.测试Apache SSL正常运行
在浏览器中输入【https://域名】,如果出现如下图所示的页面,表示成功配置HTTPS服务。若是显示不安全且证书显示为invalid,但是点击【继续浏览些网站(不推荐)】仍可访问,则可能是证书配置错误,检查证书是否过期或路径是否有误。
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 会飞的猫
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果