用户登录

有了 SSL 证书以后,我们就可以去配置一个支持 HTTPS 协议的 Nginx 服务器了。 在这个代码仓库里有我们需要用的 ssl 相关的配置,打开这个 options-ssl-nginx.conf 文件,然后复制一下这个文件里的内容。

我们得在自己的服务器上创建一个这样的配置文件,在云服务器上,进入到 /etc/letsencrypt 这个目录,在里面创建一个配置文件,名字是 options-ssl-nginx.conf ,按小 i 进入编辑模式,把复制的内容粘贴到这里。

esc,再输入 :wq 按下回车。 一会儿在配置服务器的时候会用到这个配置文件,下面还得再生成一个 dhparams 文件,可以使用 openssl 生成这个文件,sudo openssl dhparam -out ssl-dhparam.pem 位数是 2048 。

生成这个文件需要稍等一会儿。

下面再去创建一个 nginx 配置文件,进入到 /etc/nginx 这个目录,再进入到这个目录下面的 conf.d 目录,这个目录里现在有一个 demo.conf 配置文件,用 vi 编辑一下这个配置文件。

在这个配置文件里面,我们可以使用两个 server 区块,就是配置两个 nginx 服务器,一个监听的是 80 端口, server_name 是 xb2-node-api.ninghao.net

去掉 root 指令,换成一个 return 301,做一个 301 的重定向,重定向到 https://,用两个变量,一个是 $host 加上 $request_uri 。

这个服务器会把使用 http 协议的访问重定向到 https 。 下面可以再添加一个 server 区块, 在这个区块里,用 listen 设置一下监听,监听的是 443 端口,ssl 还有 http2。

下面再添加一个 server_name 指令,域名设置成 xb2-node-api.ninghao.net。

再用 ssl_certificate 设置一下 ssl 证书,这个证书文件是在 /etc/letsencrypt/live/xb2-node-api.ninghao.net 目录下面的 fullchain.pem 这个文件。

下面再用一个 ssl_certicate_key 设置一下密钥文件的位置,位置是 /etc/letsencrypt/live/xb2-node-api.ninghao.net 目录下面的 privkey.pem 文件。

再用一个 include 指令,载入进来一个配置文件,位置是 /etc/letsencrypt 下面的 options-ssl-nginx.conf 。

然后用 ssl_dhparam 指令设置一下 dh 参数,位置是 /etc/letsencrypt/ssl-dhparams.pem ,这个文件是刚才我们用 openssl 自己生成的。

最后再用 root 设置一下这个服务器的根目录,位置是 /mnt/demo 。 esc 退出,输入 :wq ,按下回车。

执行一下 sudo nginx -t 测试一下 nginx 的配置,这里显示了一处错误,提示无法打开 ssl-dhparams.pem 文件,查看一下 /etc/letsencrypt 目录里的资源,这个 ssl-dhparam.pem 文件名里少了一个 s ,执行 mv /etc/letsencrypt/ssl-dhparam.pem 重命名为 /etc/letsencrypt/ssl-dhparams.pem 。

提示权限不够,在要执行的这个命令的前面要加上 sudo 。 完成以后,再测试一下 nginx 的配置。确定没有问题,可以重载一下 nginx, sudo systemctl reload nginx。

提示 nginx 还没有启动,因为之前在申请 ssl 证书的时候我们把 nginx 停掉了,执行一下 sudo systemctl start nginx ,启动一下 nginx ,这样配置就会生效了,你也可以再执行一下 sudo systemctl reload nginx,确保新做的配置生效。

回到浏览器,打开用域名访问的这个标签,现在用的是 http 协议的访问,刷新一下这个页面,在地址栏你会发现有一个小锁头小图标。点击打开它,显示 连接是安全的,因为现在用的是 https 协议访问的服务器。

再打开 证书,上面会显示证书的签发者,还有证书的过期时间。

配置 Nginx 服务器支持 HTTPS《 Node.js 服务端应用开发:生产环境 》

统计

12774
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点