配置Apache支持HTTPS

配置Apache支持HTTPS

一、首先编译apache支持ssl,要安装openssl,我用的是CentOs 8,已经默认安装好了openssl:

#! /bin/sh
#
# Created by configure

"./configure" \
"--prefix=/usr/local/apache2" \
"--with-included-apr" \
"--enable-so" \
"--enable-ssl" \
"--enable-socache-shmcb" \
"$@"

二、申请证书

我使用的是certbot申请的证书,其实他们的证书也是没有经过认证的,需要认证的证书就得花钱了,其实这么看来也可以自己生成证书:

certbot只是一个python脚本可以自动向其证书服务器申请证书和私钥,因为我的apache是编译安装的,certbot的脚本不能自动处理我的配置(这是他们论坛上一位大神说的),于是我只申请了证书:

certbot certonly --webroot -w /usr/local/apache2/htdocs/www红色部分写不写好像都行,因为我也只是申请了证书
curl -k -v 'https://127.0.0.1/www' #可以通过该命令验证证书是否安装成功,我就遭遇了apache服务器端证书配置错误,如果没有问题,输出会有一行写着验证成功了。此时发现了curl存在的必要性。

三、编辑Apache配置文件:

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module        modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf

四、编辑httpd-ssl.conf

Listen 443
SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLHonorCipherOrder on 
SSLProtocol all -SSLv3
SSLProxyProtocol all -SSLv3
SSLPassPhraseDialog  builtin
SSLSessionCache        "shmcb:/usr/local/apache2/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300
<VirtualHost _default_:443>
DocumentRoot "/mnt/www"#虚拟主机的根目录要配置正确,不然无法访问,会提示没有权限
ServerName www.5x44.cn:443
ServerAdmin skiron_liu@163.com
ErrorLog "/usr/local/apache2/logs/error_log"
TransferLog "/usr/local/apache2/logs/access_log"
SSLEngine on
SSLCertificateFile "/etc/letsencrypt/live/5x44.cn/fullchain.pem"#我使用的是certbot的证书。
SSLCertificateKeyFile "/etc/letsencrypt/live/5x44.cn/privkey.pem"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/apache2/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog "/usr/local/apache2/logs/ssl_request_log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

五、大体上这就配置完了,不过最后我也没有使用https,因为wordpress是支持https的,但是主题不支持,我按网上说的修改了(修改主题的functions.php,根目录的wp_config.php,更新数据库等等操作),但是进入后台管理页面还是布局错乱,我只能再修改回http的方式。

Comments are closed.