如何设置HTTPS访问?

在设置https访问之前,请开启安全组的443端口,如果不开启,https访问是不可用的。

这里提供两种https的配置方案,请根据实际情况选择:

配置方式一:自己准备好了证书

如果您已经申请了证书(请保证证书可用),请参考如下的配置方式:

  1. 将证书上传到服务器证书目录:/data/cert(没有cert目录可以自己新建)

  2. 在/etc/httpd/conf.d目录下新建一个https配置文件,假设命名为mydomain-ssl.conf。

  3. 拷贝下面的https配置文件模板到mydomain-ssl.conf文件中,并保存

    <VirtualHost *:443>
    ServerName  www.mydomain.com
    DocumentRoot "/data/wwwroot/default"
    #ErrorLog "logs/www.mydomain.com-error_log"
    #CustomLog "logs/www.mydomain.com-access_log" common
    <Directory "/data/wwwroot/default">
    Options Indexes FollowSymlinks
    AllowOverride All
    Require all granted
    </Directory>
    SSLEngine on
    SSLCertificateFile  /data/cert/www.mydomain.com.crt
    SSLCertificateKeyFile  /data/cert/www.mydomain.com.key
    SSLCertificateChainFile  /data/cert/root_bundle.crt
    </VirtualHost>
    
  4. 修改配置文件中相关项,并保存
    ServerName #主域名,务必修改
    ServerAlias #副域名,可选项
    DocumentRoot #网站路径,务必填写网站实际路径,例如:/data/wwwroot/default/wordpress
    Directory #同上
    SSLCertificateFile #证书,务必填写网站实际路径和名称
    SSLCertificateKeyFile #证书私钥,务必填写网站实际路径和名称
    SSLCertificateChainFile #证书链(CA文件),务必填写网站实际路径和名称

    注意:证书的后缀一般是:.crt或者 .pem,私钥的后缀是:.key,填写错误会导致服务无法启动

  5. 重启服务

    #~ systemctl restart httpd
    

配置方式二:自动生成免费证书

本LAMP环境提供了针对于已经配置好的http网站实现免费的证书自动生成方式,从而实现https访问的解决方案。步骤如下:

  1. 确保网站绑定好域名

    请确保网站的配置文件中ServerName和ServerAlias中配置有正确的解析后的域名

  2. 运行命令
    certbot

  3. 根据提示输入对应的内容,如图所示

    1542853767834

    第4步可以多选,输入的数字以逗号/空格为分隔

  4. 以上步骤操作完成后,certbot将会自动配置好证书,浏览器访问域名检查是否配置成功

  5. https配置成功后,设置好计划任务,输入以下命令:

    Let's Encrypt生成的证书每三个月需要续订,这里设置好计划任务自动续订证书

    echo "0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" >> /etc/crontab

  6. 生成的网站证书存放目录

    /etc/letsencrypt/live/


证书FAQ

证书的申请注意事项:

  • 免费证书只能用于明细域名,例如: buy.example.com,或next.buy.example.com,
  • example.com是通配符域名方式,不能用于申请免费证书
  • 申请证书的时候,请先解析好域名,有些证书会绑定域名对应的IP地址,即一旦申请后,IP地址不能更换,否则证书不可用

CDN开启HTTPS

阿里云参考:https://help.aliyun.com/document_detail/27118.html
腾讯云参考:https://cloud.tencent.com/document/product/228/6295
华为云参考:https://support.huaweicloud.com/usermanual-cdn/zh-cn_topic_0064907771.html

HTTPS访问常见问题

为什么设置成功,显示“与此网站建立的连接并非完全安全”?

首选明确一点即您的HTTPS设置是成功的,只是由于网站中存在包含 http访问的静态文件 或 外部链接等,导致浏览器告警您的网站并非完全安全。