六一的部落格


关关难过关关过,前路漫漫亦灿灿。




说明

目前VPS只能响应HTTP请求. HTTP与HTTPS的区别, 在于HTTPS支持加密和验证

HTTPS使用TLS(SSL)来加密HTTP请求和响应, 并对这些请求和响应进行数字签名

我是在腾讯云购买的域名, 腾讯云为个人用户提供50张免费DV单域名证书, 每年购买一次, 不花钱但得走个流程


阿里云好像也有免费证书


付费证书选择



申请免费证书

我的证书 > 申请免费证书

-
证书绑定域名 填写购买域名
域名验证方式 选择 手动DNS验证
申请邮箱
算法选择 使用推荐算法 RSA
  1. 域名验证

    我的域名 > 解析 > 添加记录

    将提供的信息拷贝到此处, 添加成功后回到申请证书页面, 继续下一步骤

    整个提交后, 不一会就可以收到站内信告知证书审核通过

  2. 下载证书

    我的证书 > 下载

    我选择Nginx


  3. 本地解压得到4个文件, 拷贝(.crt)和(.key)后缀的文件

  4. 在VPS创建文件夹 /usr/local/cert , 存放SSL证书文件

    1sudo -i
    2mkdir /usr/local/cert
    3cd /usr/local/cert

    建议备份证书文本


使用SSL证书

  1. 修改站点信息

    1vi /etc/nginx/sites-available/blog
     1server {
     2    listen       443 ssl;
     3    server_name <域名>;
     4    root         /usr/local/var/<项目名称>;
     5    ssl_certificate /usr/local/cert/<证书名>.crt;
     6    ssl_certificate_key /usr/local/cert/<证书名>.key;
     7    ssl_session_timeout 5m;
     8    ssl_protocols TLSv1.2 TLSv1.3;
     9    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    10    ssl_prefer_server_ciphers on;
    11
    12    location / {
    13    }
    14}          
  2. 验证配置

    1nginx -t
  3. 更新站点信息

    1nginx -s reload
  4. 查看

    此时只响应HTTPS请求

    https://<域名>

HTTP自动跳转HTTPS

  1. 修改站点信息

    1vi /etc/nginx/sites-available/blog
     1server {
     2    listen       443 ssl;
     3    server_name <域名>;
     4    root         /usr/local/var/<项目名称>;
     5    ssl_certificate /usr/local/cert/<证书名>.crt;
     6    ssl_certificate_key /usr/local/cert/<证书名>.key;
     7    ssl_session_timeout 5m;
     8    ssl_protocols TLSv1.2 TLSv1.3;
     9    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    10    ssl_prefer_server_ciphers on;
    11
    12    location / {
    13    }
    14}
    15
    16server {
    17    listen 80;
    18    server_name <域名>;
    19    rewrite ^/(.*)$ https://域名:443/$1 permanent;
    20}
  2. 更新站点信息

    1nginx -s reload
  3. 关闭HTTP端口

    1ufw delete allow http

www子域重定向

  1. 修改站点信息

    1vi /etc/nginx/sites-available/blog
     1server {
     2    listen       443 ssl;
     3    server_name <域名>;
     4    root         /usr/local/var/<项目名称>;
     5    ssl_certificate /usr/local/cert/<证书名>.crt;
     6    ssl_certificate_key /usr/local/cert/<证书名>.key;
     7    ssl_session_timeout 5m;
     8    ssl_protocols TLSv1.2 TLSv1.3;
     9    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    10    ssl_prefer_server_ciphers on;
    11
    12    location / {
    13        if ($host = 'www.<域名>') {
    14            rewrite ^/(.*)$ https://<域名>:443/$1 permanent;
    15        }
    16    }
    17}
    18
    19server {
    20    listen 80;
    21    server_name <域名>;
    22    rewrite ^/(.*)$ https://<域名>:443/$1 permanent;
    23}
  2. 更新站点信息

    1nginx -s reload

书签

-
证书安装
Nginx服务器SSL证书安装
Nginx重定向
把站点托管到Cloudflare

为站点添加SSL证书



说明

目前VPS只能响应HTTP请求. HTTP与HTTPS的区别, 在于HTTPS支持加密和验证

HTTPS使用TLS(SSL)来加密HTTP请求和响应, 并对这些请求和响应进行数字签名

我是在腾讯云购买的域名, 腾讯云为个人用户提供50张免费DV单域名证书, 每年购买一次, 不花钱但得走个流程


阿里云好像也有免费证书


付费证书选择



申请免费证书

我的证书 > 申请免费证书

-
证书绑定域名 填写购买域名
域名验证方式 选择 手动DNS验证
申请邮箱
算法选择 使用推荐算法 RSA
  1. 域名验证

    我的域名 > 解析 > 添加记录

    将提供的信息拷贝到此处, 添加成功后回到申请证书页面, 继续下一步骤

    整个提交后, 不一会就可以收到站内信告知证书审核通过

  2. 下载证书

    我的证书 > 下载

    我选择Nginx


  3. 本地解压得到4个文件, 拷贝(.crt)和(.key)后缀的文件

  4. 在VPS创建文件夹 /usr/local/cert , 存放SSL证书文件

    1sudo -i
    2mkdir /usr/local/cert
    3cd /usr/local/cert

    建议备份证书文本


使用SSL证书

  1. 修改站点信息

    1vi /etc/nginx/sites-available/blog
     1server {
     2    listen       443 ssl;
     3    server_name <域名>;
     4    root         /usr/local/var/<项目名称>;
     5    ssl_certificate /usr/local/cert/<证书名>.crt;
     6    ssl_certificate_key /usr/local/cert/<证书名>.key;
     7    ssl_session_timeout 5m;
     8    ssl_protocols TLSv1.2 TLSv1.3;
     9    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    10    ssl_prefer_server_ciphers on;
    11
    12    location / {
    13    }
    14}          
  2. 验证配置

    1nginx -t
  3. 更新站点信息

    1nginx -s reload
  4. 查看

    此时只响应HTTPS请求

    https://<域名>

HTTP自动跳转HTTPS

  1. 修改站点信息

    1vi /etc/nginx/sites-available/blog
     1server {
     2    listen       443 ssl;
     3    server_name <域名>;
     4    root         /usr/local/var/<项目名称>;
     5    ssl_certificate /usr/local/cert/<证书名>.crt;
     6    ssl_certificate_key /usr/local/cert/<证书名>.key;
     7    ssl_session_timeout 5m;
     8    ssl_protocols TLSv1.2 TLSv1.3;
     9    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    10    ssl_prefer_server_ciphers on;
    11
    12    location / {
    13    }
    14}
    15
    16server {
    17    listen 80;
    18    server_name <域名>;
    19    rewrite ^/(.*)$ https://域名:443/$1 permanent;
    20}
  2. 更新站点信息

    1nginx -s reload
  3. 关闭HTTP端口

    1ufw delete allow http

www子域重定向

  1. 修改站点信息

    1vi /etc/nginx/sites-available/blog
     1server {
     2    listen       443 ssl;
     3    server_name <域名>;
     4    root         /usr/local/var/<项目名称>;
     5    ssl_certificate /usr/local/cert/<证书名>.crt;
     6    ssl_certificate_key /usr/local/cert/<证书名>.key;
     7    ssl_session_timeout 5m;
     8    ssl_protocols TLSv1.2 TLSv1.3;
     9    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    10    ssl_prefer_server_ciphers on;
    11
    12    location / {
    13        if ($host = 'www.<域名>') {
    14            rewrite ^/(.*)$ https://<域名>:443/$1 permanent;
    15        }
    16    }
    17}
    18
    19server {
    20    listen 80;
    21    server_name <域名>;
    22    rewrite ^/(.*)$ https://<域名>:443/$1 permanent;
    23}
  2. 更新站点信息

    1nginx -s reload

书签

-
证书安装
Nginx服务器SSL证书安装
Nginx重定向
把站点托管到Cloudflare