Centos apache配置ssl证书
环境
系统:CentOS Linux release 8.2.2004 (Core)
Apache版本:
Server version: Apache/2.4.37 (centos)
Server built: Jun 8 2020 20:14:33
配置步骤
服务器软件安装
首先需要安装apache,在Centos 上一般是httpd服务,直接通过命令:yum install httpd -y
安装。
然后还有一个模块需要安装的,就是mod_ssl模块,这个在我们配置证书时必须用到,也是通过yum安装:
yum install mod_ssl
文件目录路径
这边是采用默认安装路径
httpd配置文件路径:/etc/httpd/
网站文件目录:/var/www/
上传证书文件
使用FileZilla进行证书文件上传,我这里是将证书文件放置在/etc/httpd/cert下面,其实这个路径可以根据个人喜好的。
我这里使用的是腾讯云的免费一年的SSL证书,Apache证书格式,3个文件。注意:需要先在/etc/httpd/下面建一个目录才行。
新建目录命令:mkdir /etc/httpd/cert
修改配置文件
在/etc/httpd/下面会有几个文件夹会用到。
cert:证书文件夹
conf:httpd.conf服务器主配置文件夹
conf.d:ssl.conf配置文件夹
modules:各种模块文件
配置文件夹修改
httpd.conf文件修改
找到/etc/httpd/conf/httpd.conf
文件
通过vim进行修改
找到下面几行命令进行修改
ServerName www.xxxxxx.com:80 # 填写自己的域名
DocumentRoot "/var/www/html" #网站文件目录
Include conf.modules.d/*.conf #加载/conf.modules.d目录下所有.conf文件
IncludeOptional conf.d/*.conf #加载/conf.d目录下所有.conf文件
ssl.conf文件修改
<VirtualHost *:443> 修改为443
SSLEngine on #启用ssl
SSLProtocol all -SSLV2 -SSLV3 #加密协议
SSLProxyProtocol all -SSLv3 #代理
SSLHonorCipherOrder on
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM #加密套件
SSLCertificateFile /etc/httpd/cert/2_www.xxxxxx.com.crt #证书文件 这里顺序不要搞错了,我一开始也没读懂。
SSLCertificateKeyFile /etc/httpd/cert/3_www.xxxx.com.key # 秘钥文件
SSLCertificateChainFile /etc/httpd/cert/1_root_bundle.crt #证书文件
重启httpd服务
systemctl restart httpd
http强制转https跳转
在/etc/http/conf/httpd.conf文件下添加如下命令。
<VirtualHost *:80>
DocumentRoot "/var/www/html" #网站文件目录
ServerName localhost:80
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
</VirtualHost>
测试网站
浏览器输入你的网址:OK!
如果有配置强制https跳转就算输入http也会自动调整https状态。
可能遇到的问题:
输入https网址可以打开但是还是显示不安全,这个有可能是使用了http格式的链接,比如图片链接是使用网址的CDN地址。我这次就算这样子的,在我的CDN加速里面因为是没有加密的http地址,导致虽然网址可以打开还是显示不安全。
解决方案:替换成本地相对地址。
注意事项
之前还不会的时候网上各种百度,然后各种坑,要不就是文件路径根本不一致,要不就是报错等各种奇奇怪怪的问题,现在还是自己记录一下自己的操作吧。