Skip to content

78让站点使用https安全加密访问

supperxin edited this page Aug 18, 2017 · 1 revision

站点使用https,需要2个步骤:

  • 申请证书
  • 配置代理服务器使用证书

申请证书

证书的申请有两种途径:

  1. 找专门的证书颁发机构购买证书,优点是证书的有效时间长,一般以年为单位,缺点是需要付费
  2. Let’s Encrypt申请免费的证书,优点是免费,缺点是有效时间只有3个月,但是可以无限续期。

使用Let’s Encrypt申请免费证书

有多种途径通过Let’s Encrypt来生成证书,可以在这个列表看到:

ACME Client Implementations

下面是使用ZeroSSL在线生成证书的步骤:

  1. 生成 Account key 和 domain 生成证书请求

进入https://zerossl.com/free-ssl/#crt,分别输入 email 和 domain(多个domain用空格隔开),选中Accept ZeroSSL TOS和Accept Let's Encrypt SA (pdf),点击两次Next,可以得到 account key 和 domain.csr

图片:

  1. 验证domain所有权

有http方式或者DNS解析两种方式来验证domain所有权,这里推荐使用DNS方式,直接在DNS解析上添加txt的记录即可:

图片:

添加好之后,等待几分钟,点击Next完成验证

  1. 查看和下载证书

第2步完成之后会生成证书和私钥,将其下载保存起来。

配置Nginx服务器

在Nginx的配置文件添加如下内容:

server {
        listen 443;
        server_name www.supperxin.com;
        ssl on;
        ssl_certificate /data/crt/server.crt;
        ssl_certificate_key /data/crt/server.key;

        location /{
                proxy_pass https://web:5002;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
        }

        location ~ .*\.(js|css|ico|png|jpg|eot|svg|ttf|woff)$ {
                proxy_pass http://web:5002;
                proxy_set_header Host $host;
                expires 30d;
        }
}

配置好之后,网站就可以通过https加密访问了。

Clone this wiki locally