一:使用apache搭建web环境
1.安装apache
yum install httpd
2.下载配置网页模板
wget http://down.cssmoban.com/cssthemes5/cpts_1679_coq.zip
unzip cpts_1679_coq.zip
mv cpts_1679_coq/* /var/www/html
3. 启动apache服务
systemctl start httpd
systemctl enable httpd
4.测试网页是否正常
直接浏览器输入IP/域名即可,如果网页无法打开,一般是防火墙导致,直接关闭防火墙或开放80,443两个端口
systemctl stop firewalld.service
二. 开启SSL证书认证
1.安装SSL服务模块
不同方式安装的apache配置文件目录也不同,本次仅以yum方式安装的为例。
首先判断CentOS7是否已经安装了SSL证书服务模块 mod_ssl 与 openssl:
rpm -qa mod_ssl
键入上式,没有反应就是没有安装SSL证书服务模块 mod_ssl。一般新装的CentOS7默认没有安装。
rpm -qa openssl
键入上式,没有反应就是没有安装SSL证书服务模块 openssl。一般新装的CentOS7默认有安装。为:openssl-1.0.2k-12.el7.x86_64
安装mod_ssl 与openssl
yum install mod_ssl openssl -y
成功安装mod_ssl之后,就会在目录/etc/httpd/conf.d下自动生成ssl.conf文件。
2. 证书下载
购买好域名以后,去阿里云申请一个免费的SSL证书,然后根据服务器类型下载对应证书。apache下载下来的是证书是三个文件,分别为
证书公钥:xxx_public.crt
证书私钥:xxx.key
证书链: xxx _chain.crt
.crt扩展名的证书文件采用Base64-encoded的PEM格式文本文件,可根据需要,修改成.pem等扩展名。
3.证书上传
将前述步骤下载的证书,上传到apache服务器上,保存位置随意,只要记得就行,这里 创建一个cert文件夹,并将以上三个文件都放入这个文件夹,对应路径为:
cert/xxx_public.crt
cert/xxx.key
cert/xxx _chain.crt
4.修改配置文件
vi /etc/httpd/conf/httpd.conf
将以下两条命令前的#号去掉
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ssl.conf(删除行首的配置语句注释符号“#”,保存后退出)
vi /etc/httpd/conf.d/ssl.conf
在配置文件中查找以下配置语句:
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置(大约第100行)
SSLCertificateFile cert/XXX_public.crt
# 证书私钥配置(大约第107行)
SSLCertificateKeyFile cert/XXX.key
# 证书链配置(大约第122行)
SSLCertificateChainFile cert/XXX_chain.crt
重启apache服务使配置文件生效
systemctl restart httpd
PS:此处如果服务重启失败,大概率是因为443端口冲突,解决方法就是找到占用443端口的程序,关闭即可。
5.强制http跳转https
完成前4步之后,就可以通过https访问你的域名了,但是如果地址输入的是http://域名,网站还是会以http模式打开,因此还需要设置强制跳转至https。
vi /etc/httpd/conf/httpd.conf
查找关键字“AllowOverride"
将网站根目录这组里的“AllowOverride none”改为“AllowOverride ALL”
添加强制跳转代码,最终修改结果如下:
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://你所希望跳转的域名/$1 [R,L]
</Directory>
重启apache服务使配置文件生效
systemctl restart httpd
某些情况下如果需要重新安装apache服务,使用以下命令操作即可:
systemctl stop httpd.service
yum erase -y httpd.x86_64
yum install -y httpd
systemctl start httpd
systemctl status httpd
SSL证书部分,1-4步参考:
https://blog.csdn.net/weixin_42255190/article/details/99290039
第5步参考:
https://www.jianshu.com/p/402bfbc0bdd1
https://blog.mimvp.com/article/20403.html