我有一個網站在我的本地環境中正確運行HTTPS。當我將它上傳到AWS時,它會永久超時或重定向。.net Core - 使用AWS負載平衡器和Elastic Beanstalk的HTTPS不起作用
我在AWS中的設置是一個Elastic Beanstalk應用程序,一個運行MS SQL的RDS數據庫,我添加了一個負載均衡器來轉發HTTPS請求,並且我有一個正確分配給負載均衡器的SSL證書。從所有我可以告訴我的應用程序正在運行,實際上,實體框架發射並正確構建我的數據庫在我的RDS實例。我無法通過互聯網訪問該網站。
我試着設置聽衆不同的方式。如果我現在就寫這樣的,它只是重定向永遠:
我有default HTTP/HTTPS port forwarding code in my Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
// Sets all calls to require HTTPS: https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl
services.Configure<MvcOptions>(options =>
{
options.Filters.Add(new RequireHttpsAttribute());
});
...
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
// Force all HTTP requests to redirect to HTTPS: https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl
var options = new RewriteOptions().AddRedirectToHttps();
app.UseRewriter(options);
...
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor |
ForwardedHeaders.XForwardedProto
});
...
}
我我已經花了好幾天的時間在這方面,而且我無法完成它的工作。我試過把我的所有HTTPS代碼都拿出來,但這不起作用。我已經嘗試了來自this和this之類的博客的代碼解決方案,但這也不起作用。從我讀過的內容來看,Load Balancer最終處理HTTPS請求,然後將HTTP請求轉發給我的應用程序。但我不知道如何正確處理該問題,仍然執行HTTPS,並將HTTP重定向到HTTPS。
這看起來好像它會是一些剛開箱即用的工具,而沒有從我那裏得到一堆設置。如果不是的話,我想現在有很多其他人會遇到這個問題,並且會在互聯網上看到關於它的信息。我錯過了一些小事?因爲我完全以我的智慧爲結局。
如果你能回答這個問題,你將成爲我的新英雄。
你能確認,如果你負載均衡是面向互聯網嗎?您可以在描述選項卡中看到此詳細信息 – Shantanu
是的,負載平衡器是「面向互聯網」。 – Pinski