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. 服务器相关配置
在Apache的安装目录 /etc/httpd/
下创建 cert
目录,并且将下载的全部文件拷贝到 cert
目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为 a.key
;
打开 apache
安装目录下 conf
目录中的 httpd.conf
文件,找到以下内容并去掉“#”。
如果没有 modules/ssl_mod.so,点这里安装 OpenSSL
LoadModule ssl_module modules/mod_ssl.so
IncludeOptional conf.d/*.conf
# 把配置文件都引入到主配置文件中,这个默认是已经有了的,在`httpd.conf`的最后
打开 /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.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 上了。
前后的对比: