使用Nginx在Ghost博客上进行SSL重定向和身份验证

阿塔·桑切斯(Ata Sanchez)

我在DigitalOcean上有一个有关Ghost的博客。Nginx提供的服务与以下配置文件相同:

server {
    listen 443 ssl;
    server_name www.example.com;
    return 301 $scheme://example.com$request_uri;
}

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    include snippets/ssl-params.conf;

    location / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://127.0.0.1:2825;
    }
}

证书是使用Let's Encrypt为带有和不带有www的域生成的。在Ghost config.js文件中,URL写入使用SSL的规则:https : //example.com/问题是当我进入博客(没有wwww的域)时,可以正确登录并使用SSL,但是当我尝试使用https://www.example.com登录时,出现SSL证书身份验证错误。我真的不明白这里可能出什么问题。在使用www输入我的域时,我需要重定向到该域,但不使用www。我之前在其他应用程序节点上使用相同的配置代码完成了此操作。

阿塔·桑切斯(Ata Sanchez)

这是我的Nginx配置文件,我在其中为Ghost提供博客。该证书是使用“让我们加密”生成的,并且在两个域中均正常工作。缺点是执行301重定向时存在缺陷,因为它不能正常工作,因为带有www的域告诉我证书无效,但是,如果我尝试进行反向重定向,从非www到www,它将显示我收到相同的消息,但对于没有www的域:

server {
    listen 80;
    server_name www.example.com;
    return 301 https://example.com$request_uri;
}

server {
    listen 80;
    server_name example.com;
    return 301 https://www.example.com$request_uri;
}

server {
    listen 443;
    server_name example.com;
    return 301 https://www.example.com$request_uri;
}

server {
    listen 443;
    server_name www.example.com;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;

    include snippets/ssl-params.conf;

    location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_pass http://localhost:9002/;
            proxy_redirect off;
    }
}

当前,我正在使用Digital Ocean的Droplet,在其中配置了3个字段A,一个值为*的字段A指向虚拟机的IP,一个@字段也指向服务器的IP,以及最后,值为www的字段A转到我服务器的IP。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 totp 进行身份验证和重定向(speakeasy)

在Angular2和Firebase中进行用户身份验证后进行重定向

为什么AuthorizeAttribute重定向到登录页面以进行身份验证和授权失败?

登录身份验证后进行快速重定向

使用 Nginx 进行身份验证的方法

如何在域上(通过ssl)对用户进行身份验证,以及如何在其他域中重定向和创建会话?

使用 Xamarin.Auth 进行身份验证时未调用重定向 URL

通过Microsoft Azure进行身份验证时如何使用nativeclient重定向URI?

使用Spring Security进行身份验证失败后重定向到原始页面

使用React-Router进行基于身份验证的重定向

在ASP.Net MVC中使用OpenIdConnect进行身份验证后重定向用户

Swift-使用Microsoft Graph进行Firebase身份验证(重定向URL问题)

使用上下文 API 进行身份验证,继续重定向到登录页面

使用Spring Boot进行OAuth2身份验证后无法正确重定向

Firebase身份验证在重定向时不进行身份验证

Next.js + Redux身份验证和重定向

使用Lambda,Cognito或IAM在AWS上进行用户身份验证(注册和登录)

使用App Engine端点和Java在Android上进行的自制身份验证

使用Python脚本在ADFS上进行身份验证

无法使用PHP在mongodb上进行身份验证

使用phantomjs在URL上进行身份验证

使用 C# 在 Evernote 上进行身份验证

Testcafe和Microsoft身份验证在身份验证流程期间无法重定向

使用 JHipster、Spring Security 和 oauth2 控制身份验证重定向

如何使用摘要身份验证在MongoDB Atlas API上进行身份验证?

使用Google身份验证在SSH服务器上进行两因素身份验证

使用需要身份验证的重定向URL配置锁?

使用jwt身份验证登录后如何重定向

使用Node.js和Passport进行身份验证后,如何将用户重定向至带有其ID的主页?