需求

实现 https://www.grabbyte.com 访问网站,浏览器不带不安全的提示。

申请SSL证书

域名是阿里云购买的,我这里直接申请了免费证书。
将申请到的证书下载回来,分别是cert.key和chain.pem文件,利用winscp,上传到服务器的目录下:

/usr/local/apache/conf/ssl.crt/www.grabbyte.com/chain.pem
/usr/local/apache/conf/ssl.crt/www.grabbyte.com/cert.key

注意:我安装的apache位置在/usr/local/apache/下面,你需要根据情况更换路径。

配置证书

配置Apache

找到apache的配置文件

/usr/local/apache/conf/httpd.conf

去掉前面的#号

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

然后,在配置文件中,增加一条 www.grabbyte.com 虚拟主机配置

/usr/local/apache/conf/extra/httpd-ssl.conf

添加下面内容:

<VirtualHost *:443>
SSLEngine On
SSLHonorCipherOrder on
DocumentRoot "/home/www/htdocs/www/public"
ServerName www.grabbyte.com:443
ServerAdmin admin@www.grabbyte.com
<Directory  "/home/www/htdocs/www">
    Options -Indexes +FollowSymlinks
    AllowOverride All
    Require all granted
</Directory>
<FilesMatch \.php$>
    SetHandler "proxy:unix:/home/www/logs/php-fpm.sock|fcgi://127.0.0.1"
</FilesMatch>
SSLCertificateFile conf/ssl.crt/www.grabbyte.com/cert.pem
SSLCertificateKeyFile  conf/ssl.crt/www.grabbyte.com/cert.key
#SSLCertificateChainFile conf/ssl.crt/www.grabbyte.com/chain.pem
BrowserMatch "MSIE [2-5]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
</VirtualHost>

注意

开放防火墙

在服务器上,防火墙也需要开放443端口才能访问到。不然无法访问。

1
2
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload

修改文件夹权限

在访问后提示无权限,需要修改对应文件夹的权限。

1
chown -R www:www /home/www/htdocs/www