开启https需要ssl证书

ssl证书免费申请:FreeSSL

首先在浏览器内操作:

  • 打开ssl证书申请网站,输入域名,点击申请
  • 输入邮箱,选项保持默认(其他选项也可以,如果选择文件验证接下来的验证步骤可以跳过)
  • 点击创建会要求 DNS验证
    • 打开域名供应商的DNS管理界面
    • 在记录中添加TXT类型的条目
    • 主机填写_dnsauth,TXT值填写记录值
  • 等待一段时间点击ssl网站的验证
  • 如果验证不成功或者一直在检测中,说明域名的DNS新条目没有应用完毕,还需要等待
    • ssl网站说明需要等待大概1分钟,但实际时间可能较长,我大概等了10分钟
  • 验证成功后下载证书

将证书的zip包解压,得到两个后缀不同的文件——一个.pem一个.key

在VPS内操作(这里使用了lnmp一键包):

  • 将解压得到的两个文件上传至VPS内(可以使用WinSCP)
  • 修改nginx配置:
    • 打开路径/usr/local/nginx/conf/vhost/
    • 打开对应域名的.conf配置文件
    • 在server内增加粗体代码,注意语句后的分号:
      • server
        {
            listen 80;
            listen 443 ssl;
            #listen [::]:80;
            ssl on;
                ssl_certificate [.pem路径];
                ssl_certificate_key [.key路径];
  • 输入lnmp restart重启lnmp服务

打开浏览器通过https://[你的域名]访问网站,若可以访问说明成功

如果直接输入域名,则会默认以http的形式访问网站

默认访问https(后两种方法未经测试):

  1. 如果使用Wordpress,可以安装插件really simple ssl,这种方法方便有效
  2. 如果使用了Nginx,编辑nginx.conf文件,加入以下代码:
    • server {
          listen 80 default_server;
          server_name www.watch-life.net;
          return 301 https://$server_name$request_uri;
      }
    • 将80 redirect到301端口
  3. 还是编辑nginx.conf文件,加入以下代码(不知是否要删除原先80端口代码):
    • server {
          listen 443;
          server_name localhost;
          ssl on;
          root html;
          index index.html index.htm;
          ssl_certificate cert/申请的证书名字.pem;
          ssl_certificate_key cert/申请的证书名字.key;
          ssl_session_timeout 5m;
          ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
          ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
          ssl_prefer_server_ciphers on;
          location / {
              root html;
              index index.html index.htm;
          }
      }
    • 这种方法直接开启https并关闭原来的http