10分钟教你免费将网站升级为https

记录如何将网站升级https,免费获取证书。

背景

直接部署再服务器的网站通常默- 认是明文的 http 协议的,也就是说你所有的请求都是很容易被别人监控、窃取和修改的,基本等于裸奔,非常不安全。

可以通过开启 https 来增加安全防护功能,来使你的网站受到保护,不容易被窃取隐私信息。

想要开启 https 功能通常需要证书,而证书一般是需要购买的,本文介绍一种免费获取证书的方法。

准备

  1. 一台linux服务器;
  2. 安装 nginx;
  3. https 证书(本文章会说明如何免费获取证书);

步骤

1. 新建 html 文件

可以在服务器上的某个目录新建一个 index.html 文件,用来当做我们的网站。

  • 新建 index.html 文件
vim /data/sites/blog/index.html
复制代码
  • index.html文件内容
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Https</title>
</head>
<body>
    <h1 style="text-align: center;">Hello Https!</h1>
</body>
</html>
复制代码

2. nginx 代理

  • nginx 基本配置
user www;
# 其他配置...
http {
    # nginx请求日志地址
    access_log  /usr/local/webserver/nginx/logs/access.log;
    server {
        listen 80;              # 监听端口
        server_name your.server.name;# 域名
        index index.html index.htm index.php;
        root /data/sites;# 站点目录
        location / {
            root   html;
            index  index.html index.htm;
        }

        location /blog {
            root /data/sites/blog;
        }
    }
}
复制代码
  • 重启 nginx 服务
nginx -t
nginx -s reload
复制代码

经过这步,访问 http://your.server.name/blog 就可以看到这样的页面了:

image.png

可以看到现在地址栏的协议是 http ,还有个感叹号,点击提示不安全:

image.png

3. 获取https证书

image.png

image.png

  • 下载安装免费获取证书的软件 keymanagerkeymanager.org

  • 下载后注册账号并登录。

  • 点击打开 keymanager

image.png

  • 按照软件提示取阿里云/腾讯云 等云服务的域名管理后台添加记录

image.png

  • DNS 验证

image.png

  • 下载证书

image.png

  • 将文件拷贝到服务器某个目录

4. 修改nginx配置https

  • 主要是两点:添加ssl配置、指定证书位置
user www;
# 其他配置...
http {
    # nginx请求日志地址
    access_log  /usr/local/webserver/nginx/logs/access.log;
    server {
        listen 443 ssl;              # 监听端口
        server_name your.server.name;# 域名
        index index.html index.htm index.php;
        root /data/sites;# 站点目录
        access_log  /usr/local/webserver/nginx/logs/blog.access.log;  #nginx请求日志地址

        # ssl证书地址
        ssl on;
        # pem文件的路径
        ssl_certificate     /usr/local/webserver/nginx/certificate/your.server.name_chain.crt;  
        # key文件的路径
        ssl_certificate_key  /usr/local/webserver/nginx/certificate/your.server.name_key.key; 
        
        # ssl验证相关配置
        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;
        }

        location /blog {
            root /data/sites/blog;
        }
    }
    # http请求直接重定向到https
    server {
        listen 80;              # 监听端口
        location /{
            return 301 https://your.server.name/;
        }
    }
}
复制代码
  • 重启 nginx 服务
nginx -t
nginx -s reload
复制代码

5. 验证https

经过这步,访问 http://your.server.name/blog 就可以重定向到https://your.server.name/blog看到小锁已经有了,协议名为https:

image.png

参考

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享