CentOS 7 万网申请免费 SSL 证书 https apache
该文中所介绍的是
CentOS 7
系统的https
配置方法,跟CentOS 6
的配置方式不同
1. 去阿里云申请免费的证书
产品
-> 安全
-> SSL证书
-> 点击购买
2. 选择要购买的 SSL 证书种类
依次选择 Symantec
-> 1个域名
才会出免费的证书
这时候才会出免费的,选择后购买,支付即可。
3. 申请证书的域名,等待审核,审核完成后才能去服务器上作进一步的配置
如图,该填的填,提交需要等待一段时间,个人网站审核时间可能会短一些。我的5分钟就下来了。
4. 下载证书文件,并上传到服务器上
接下来的内容是官方的教程,我给修改了下,只显示了 centOS 7 的相关配置过程,看原文请点这里
在证书控制台下载 Apache
版本证书,下载到本地的是一个压缩文件,解压后里面包含 _public.crt
文件是证书文件,_chain.crt
是证书链(中间证书)文件,.key
文件是证书的私钥文件(申请证书时如果没有选择系统创建CSR,则没有该文件)。
友情提示:
.crt
扩展名的证书文件采用Base64-encoded
的PEM
格式文本文件,可根据需要,修改成.pem
等扩展名。
以Apache标准配置为例,假如证书文件名是 a_public.crt
,证书链文件是 a_chain.crt
,私钥文件是a.key
。
5. 服务器相关配置
centOS7 中的 apache 目录是这样的
[root@ali httpd]# tree
.
├── cert
│ ├── kylebing.cn_chain.crt
│ ├── kylebing.cn.key
│ └── kylebing.cn_public.crt
├── conf
│ ├── httpd.conf
│ └── magic
├── conf.d
│ ├── autoindex.conf
│ ├── php.conf
│ ├── README
│ ├── ssl.conf
│ ├── userdir.conf
│ └── welcome.conf
├── conf.modules.d
│ ├── 00-base.conf
│ ├── 00-dav.conf
│ ├── 00-lua.conf
│ ├── 00-mpm.conf
│ ├── 00-proxy.conf
│ ├── 00-ssl.conf
│ ├── 00-systemd.conf
│ ├── 01-cgi.conf
│ └── 10-php.conf
├── logs -> ../../var/log/httpd
├── modules -> ../../usr/lib64/httpd/modules
└── run -> /run/httpd
如果没有 ssl.conf 和 00-ssl.conf ,说明还有东西没有安装
执行下面命令即可
yum install mod_ssl
打开 /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/kylebing.cn_public.crt
# 证书私钥配置
SSLCertificateKeyFile cert/kylebing.cn.key
# 证书链配置,如果该属性开头有 '#'字符,请删除掉
SSLCertificateChainFile cert/kylebing.cn_chain.crt
6. 配置 apache 将 http 请求重定向到 https
配置完成上面的之后,需要配置一下这个,当别人访问 http 的时候,也能重定向到 https 上
查看是否有 mod_rewrite.so
这个插件
[root@host httpd]# ll modules/ | grep rewrite
-rwxr-xr-x 1 root root 69128 Nov 5 09:48 mod_rewrite.so
然后再修改 httpd.conf
文件
在网站目录部分添加 如下内容。
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
# 上面是原有的内容,默认网站的相关配置。
# 添加下面这三行配置即可。
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</Directory>
7. 重启 Apache
systemctl restart httpd
这时,访问 http://kylebing.cn 也会被重定向到 https://kylebing.cn 上了。
前后的对比: