
了解域名SSL证书申请安装
如何将自己的网站的访问协议http转成https协议,就得要求我们必须对域名进行SSl证书申请并应用。
申请域名
可以在阿里云,腾讯云等平台购买,在此文章不做详细的介绍(因为主角不是它)
证书购买
在阿里云官网搜索SSL相关产品

选择免费证书类型

免费的不用花钱一直确认就行,
最后在 SSL证书控制台看到 如下图 未签发的证书。

购买完成后,就给已申请的域名申请SSL证书。
点击 申请 按钮 写证书申请相关信息

提交验证,等待审核成功,证书通过审核如图

网站实现http转https需要下载对应应用的证书及密钥,如图

下载后包含的文件有如图所示

文件介绍
在证书控制台下载Apache版本证书,下载到本地的是一个压缩文件,解压后里面包含_public.crt文件是证书文件,_chain.crt是证书链(中间证书)文件,.key文件是证书的私钥文件(申请证书时如果没有选择系统创建CSR,则没有该文件)。
友情提示: .crt扩展名的证书文件采用Base64-encoded的PEM格式文本文件,可根据需要,修改成**.pem**等扩展名。
以Apache标准配置为例,假如证书文件名是a_public.crt,证书链文件是a_chain.crt,私钥文件是a.key。
Apache服务器安装SSL证书
1、将下载的全部文件拷贝到Apahce的安装目录下
/etc/httpd/cert2、修改apache配置
vim /etc/httpd/conf/httpd.conf找到如下内容去掉 # 号
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ssl.conf(删除行首的配置语句注释符号“#”,保存后退出)注意 用yum安装的apache是没有启用ssl的,所有我们需要安装mod_ssl模块提供TLS/SSL功能
3、检查并安装mod_ssl
ls /etc/httpd/modules/ | grep "mod_ssl" #默认没有安装mod_ssl
yum list all mod_ssl #查看mod_ssl的安装包信息
yum install -y mod_ssl #安装mod_ssl4、检查安装mod_ssl安装结果
rpm -qc mod_ssl
#结果显示
/etc/httpd/conf.d/ssl.conf #mod_ssl的配置文件存放位置
/etc/httpd/conf.modules.d/00-ssl.conf 5、修改ssl.conf
vim /etc/httpd/conf.d/ssl.conf配置文件中如下内容修改
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile cert/a_public.crt
# 证书私钥配置
SSLCertificateKeyFile cert/a.key
# 证书链配置,如果该属性开头有 '#'字符,请删除掉
SSLCertificateChainFile cert/a_chain.crt6、重启apache
systemctl restart httpd结果提示如下
Redirecting to /bin/systemctl restart httpd.service
Job for httpd.service failed. See ‘systemctl status httpd.service’ and ‘journalctl -xn’ for details.
使用如下代码检测httpd配置文件
httpd -t
#结果
[Thu Mar 21 22:46:40.320592 2019] [so:warn] [pid 2255] AH01574: module php7_module is already loaded, skipping
Syntax OK
格式没有错
查看ssl日志
cat /etc/httpd/logs/ssl_error_log
#结果如下
[Thu Mar 21 21:49:26.894751 2019] [ssl:warn] [pid 1344] AH01909: RSA certificate configured for localhost:443 does NOT include an ID which matches the server name
[Thu Mar 21 21:49:26.943935 2019] [ssl:warn] [pid 1344] AH01909: RSA certificate configured for localhost:443 does NOT include an ID which matches the server name
[Thu Mar 21 21:53:36.304483 2019] [ssl:warn] [pid 1433] AH01909: RSA certificate configured for localhost:443 does NOT include an ID which matches the server name
[Thu Mar 21 21:53:36.337643 2019] [ssl:warn] [pid 1433] AH01909: RSA certificate configured for localhost:443 does NOT include an ID which matches the server name
端口443未设置,
修改 httpd.conf
ServerName localhost 改为 ServerName localhost:443
重启apahce正常
在网站根目录下创建.htaccess文件,在最下面添加写入如下语句:
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
评论(0)