如何设置SSL/HTTPS?

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

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

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

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

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

  2. 在/etc/nginx/conf.d目录打开需要配置https的网站的所对应的配置文件,例如:default.conf

  3. 拷贝下面内容到default.conf文件中(一定要放到最后的}之外),并保存

    listen 443 ssl; 
    ssl on;
    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
    if ($scheme != "https") 
    {
    return 301 https://$host$request_uri;
    }
    
  4. 修改配置文件中相关项,并保存ssl_certificate #证书,务必填写网站实际路径 ssl_certificate_key #证书Key,务必填写网站实际路径

  5. 重启服务

    ~# systemctl restart nginx  //重启nginx
    ~# systemctl restart php-fpm //重启php-fpm
    

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

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

  1. 首先假设通过 http://域名/ 可以正常访问网站(假设域名是test.websoft9.cn,配置文件vhost.conf)
  2. 运行certbot命令开始为网站配置证书
  3. 运行成功会有提示

注:当前Cerbot官方提示此插件暂停使用


证书FAQ

证书的申请注意事项:

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