apache配置ssl证书支持cloudflare full(strict)模式

cf只对开启了http proxy(CDN)功能的域名启用https加密,否则无法使用https。本文以debian+apache为例,服务器得支持openssl,并载入ssl模块,
载入命令a2enmod ssl
载入后重启service apache2 restart

cloudflare提供的指导教程仅供参考,与我在配置过程中的实际情况有较大差异。因此浪费了很多时间。

首先从cloudflare面板中的Origin Certificates获得证书pem和私钥key。

上传到服务器存放证书的相应位置,比如证书在/etc/ssl/certs/私钥在/etc/ssl/private

找到ssl配置文件,配置文件是/etc/apache2/sites-available/default-ssl.conf,修改其中的证书和私钥路径为以下所示

SSLCertificateFile /etc/ssl/certs/XXX.com.pem
SSLCertificateKeyFile /etc/ssl/private/XXX.com.key
并添加一行命令 ServerName xxx.xxx.com(通常二级域名需要添加此行,否则浏览器会提示此网站无法证明自己是xxx.xxx.com)
问题就出在这里,指导教程和很多网上的配置教程里都说改ssl的配置文件,然而实际起作用的是普通http的配置文件/etc/apache2/site-available/000-default.conf,普通http配置文件里只有80端口的配置,需添加443端口的配置以支持https。将ssl配置文件中的以下代码<VirtualHost _default_:443>******</VirtualHost>整段复制到000-default.conf中,重启apache服务,在cloudflare面板将模式选为full(strict),打开页面,能打开就行了。

配置有错的话,会提示error 525。错误可能是路径没写对,私钥和证书名字没写对,443端口未开启(在apache2/下查看ports.conf是否有listen 443)。

注:sites-enabled里的000-default.conf快捷方式指向的就是site-available/000-default.conf,改哪一个都一样。

参考资料:https://my.oschina.net/qxhtml/blog/1845281

https://huangro.iteye.com/blog/377304

 

 


已发布

分类

作者:

标签

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注