# SSL/HTTPS

网站完成域名绑定且可以通过HTTP访问之后,方可设置HTTPS。

Discuz 预装包,已安装Web服务器 SSL 模块和公共免费证书方案 Let's Encrypt (opens new window) ,并完成预配置。

除了虚拟主机配置文件之外,HTTPS设置无需修改Nginx任何文件

# 快速参考

如果你想使用免费证书,只需在服务器中运行一条命令certbot就可以启动证书部署

如果你已经申请了商业证书,只需三个步骤,即可完成HTTPS配置

# Discuz(LAMP)

Discuz(LAMP) 即运行环境采用 Apache 作为 Web Server

  1. 将申请的证书、 证书链文件和秘钥文件上传到 /data/cert 目录
  2. 打开虚拟主机配置文件: /etc/httpd/conf.d/vhost.conf
  3. 将如下的 HTTPS 配置段模板 <VirtualHost *:443>--</VirtualHost> 插入到vhost.conf 文件中
    #-----HTTPS template start------------
    &lt;VirtualHost *:443>
     ServerName  discuz.yourdomain.com
     DocumentRoot "/data/wwwroot/discuz"
     #ErrorLog "logs/discuz.yourdomain.com-error_log"
     #CustomLog "logs/discuz.yourdomain.com-access_log" common
     &lt;Directory "/data/wwwroot/discuz">
     Options Indexes FollowSymlinks
     AllowOverride All
     Require all granted
     &lt;/Directory>
     SSLEngine on
     SSLCertificateFile  /data/cert/discuz.yourdomain.com.crt
     SSLCertificateKeyFile  /data/cert/discuz.yourdomain.com.key
     &lt;/VirtualHost>
    #-----HTTPS template end------------
    
  4. 修改 ServerName, SSLCertificateFile, SSLCertificateKeyFile等参数的值
  5. 保存, 重启 Apache 服务

# Discuz(LEMP)

Discuz(LEMP) 即运行环境采用 Nginx 作为 Web Server

  1. 将申请的证书、 证书链文件和秘钥文件上传到 /data/cert 目录
  2. 打开虚拟主机配置文件:/etc/nginx/conf.d/default.conf ,插入HTTPS 配置段 到 Discuz 的 server{ }
  #-----HTTPS template start------------
  listen 443 ssl; 
  ssl_certificate /data/cert/xxx.crt;
  ssl_certificate_key /data/cert/xxx.key;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  ssl_prefer_server_ciphers on;
  #-----HTTPS template end------------
  1. 修改 ssl_certificate, ssl_certificate_key 的值
  2. 保存,重启 Nginx 服务

# 详细指南

若参考上面的简易步骤仍无法成功设置 HTTPS 访问,请阅读由 Websoft9 提供的 《HTTPS 专题指南》 (opens new window)

HTTPS专题指南方案包括:HTTPS 前置条件、HTTPS 配置段模板、注意事项、详细步骤以及故障诊断等具体方案。