一个博客

https部署 - 从零到入门

今天试了一下将网站部署上https,遇到了一些问题,这里记录下。

首先先申请免费的证书,首先先注册个账号用户申请,https://login.wosign.com/reg.html?rf=buy,注册完毕后到这里https://buy.wosign.com/FreeSSL.html

根据提示填写网站域名等内容,提交信息之后

这里就会显示你的订单,点Domain Control verification后进入网站验证,这里我选择的是上传html文件到网站根目录下面验证。

上传之后提交,正常的话验证将通过,接下来下载证书以及秘钥,这里有两种方式,我选择第一种,输入密码用于接下来解压证书以及秘钥用,完成之后提交

你的证书已经秘钥就申请完成了,下载证书以及秘钥,丢到服务器用于接下来操作。

然后开始部署,这里我用的是nginx服务器,里面有apache以及iis等服务器,选择你对应的服务器类型,nginx需要在编译的时候加入ssl的支持,我的编译参数是这样的

./configure --prefix=/usr/local --with-http_ssl_module --with-pcre

这里--with-http_ssl_module 必须,否则nginx会报错[emerg]: the "ssl" parameter requires ngx_http_ssl_module in .....

接下来配置nginx,这里贴下我的配置

server {
    listen 443 ssl http2; //启用http2
    server_name tomori.top www.tomori.top;
    ssl on;
    ssl_certificate /1_tomori.top_bundle.crt;
    ssl_certificate_key /2_tomori.top.key;
    location / {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:xxxx;
    }
}

其中ssl_certificate以及ssl_certificate_key分别之前刚刚下载的的证书以及秘钥(相对路径绝对路径都行)

然后重启nginx服务器,部署到这里就结束了。

由于我的网站是基于koa,这里我用了koa-force-ssl模块,让网站强制走https。

我在nginx那里添加了配置,让网站强制走https

server {
    listen 80;
    server_name tomori.top www.tomori.top;
    if ($ssl_protocol = "") {
            rewrite ^/(.*) https://$server_name/$1 permanent;
    }
}

需要注意的是网站的资源都得换成https,否则浏览器会提示不安全资源。

160525 append: (centos 升级 nginx)

/etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo  
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/  
gpgcheck=0  
enabled=1

yum clean all && yum update nginx

170116 append 现在wosign已经不支持免费https申请了,请移步https://certbot.eff.org/使用命令生成证书