Nginx中HTTPS的配置

1,148 阅读1分钟

前言

我们接上一篇文章在Ubuntu中利用Nginx进行多站点的配置(未备案这样投机取巧!)的内容,对于上一篇文章还没解决的HTTPS的问题,我们在本篇文章中将继续探讨。

HTTPS 的配置(使用freessl免费证书)

证书的申请

  1. 进入官网填写相关内容

我选择 DNS 验证,一键申请(会要求安装软件keymanager):

提示需要安装 keymanager

keymanager:提供安全便捷的SSL证书申请和管理

  1. 利用brew安装 keymanager

brew cask install keymanager

打开后:

keymanager

  1. 再次申请,此时弹出设置

需要DNS登录的Global API key。

作者虽然是在namesilo买的域名,但是在cloudflare上管理,因此就需要去cloudflare上去找这个密钥:

Global API key

填好之后点击申请就好了:

成功

  1. 导出证书

稍等片刻,会生成一个压缩包:

证书

  1. 将证书上传到服务器

我们把证书存在/etc/nginx/ssl目录下,可以使用ftp,或者宝塔面板上传:

采用宝塔面板上传文件

在 Nginx 中配置 ssl

虚拟主机的配置文件放在:/etc/nginx/sites-available中。

例如编辑baota这个虚拟机的配置文件:

server {
        listen 888;
        listen [::]:888;
        server_name baota.dfface.com;

        ssl on;
        ssl_certificate /etc/nginx/ssl/*.dfface.com_chain.crt;
        ssl_certificate_key /etc/nginx/ssl/*.dfface.com_key.key;

        location / {
            proxy_pass http://localhost:8888;
            proxy_set_header Host $host:888;
            proxy_set_header X-Client-IP $remote_addr;
        }
}

之后重新载入配置文件:systemctl reload nginx

成功啦,测试:

有锁啦

查看证书

关于http链接向https链接的跳转

有多种方式,(对我们的情况无效:一是通过另起一个80server块,在其中进行rewrite ^(.*)$ https://$host$1 permanent;),还有就是对我们有用的一种:error_page 497 https://$host:888$uri?$args;。——来自nginx强制使用https访问(http跳转到https)


dfface 的版权声明:所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处,严禁商业用途!