我在Visual Studio中启用了SSL,如下所示:
我还设置了以下内容:
当我通过IE(通过Visual Studio调试)访问网站时,我看到了以下内容:
当我通过Firefox(通过Visual Studio调试)访问网站时,我看到了以下内容:
在Firefox或IE中没有进入网站的选项。我花了一整天的时间试图弄清楚到底出了什么问题。我做错了什么?
ntjbwcob1#
在使用SSL时,我经常看到这个问题,并且发现(特别是在团队环境中处理其他人的项目时)Visual Studio项目Web设置(SSL端口)有时会变得混乱。我是这么做的
这总是为我解决问题。
lstz6jyr2#
假设您有一个.NET MVC或Web API项目,并且希望在SSL上运行它。换句话说,您希望在类似于https://localhost:xxxx的URL上启动项目。第一步很容易。您只需在解决方案中选择MVC/Web API项目名称,并在属性窗口中找到名为“SSL Enabled”的属性:
相同的属性窗口还将显示应用程序的HTTPS URL。在上面的例子中,它是https://localhost:44300/。复制该URL并转到项目属性窗口。找到“Web”选项卡,然后使用https地址覆盖“项目URL”属性:
启动应用程序。您可能会在浏览器中收到一条消息,说localhost地址不受信任,您可以继续访问该网站,风险自负。下面是一个瑞典语的Chrome示例:
问题是Visual Studio自动为您安装的证书不受信任。您可以在证书管理单元的计算机级证书的“个人”文件夹中找到证书:
如果双击证书,您将看到它不受信任:
该消息还提供了解决方案:必须将证书导入到受信任的根证书颁发机构文件夹中。你会看到,作为一个文件夹,在同一管理单元就在下面的“个人”。那么我们怎么做呢?
导出
应该有一条弹出消息,说明导出成功。
导入
应该有一条消息,说明导入成功。如果您现在返回到Personal存储区并双击localhost证书,那么您应该看到它是受信任的:
好了,让我们再次启动.NET Web项目,打开的页面应该会在没有任何警告的情况下打开。如果您仍然看到相同的问题,请使用全新的浏览器会话进行测试,例如。在IE中:
您还可以从浏览器窗口查看提取的证书。下面是一个来自IE的例子:
pvcm50d13#
@MattW我正在使用Mac,遇到了这个问题。我在macOS Catalina 上使用Visual Studio 2019 for Mac。我打开了项目的“项目选项”,并在ASP.NETCore的默认运行配置下的“应用程序URL”中将“HTTP”更改为“HTTPS”
我已经有了一个localhost的自签名证书,所以Visual Studio给了我一个消息框,要求我使用Keychain的开发证书。它要求我输入密码并使用证书。该应用程序在“HTTPS”上没有任何问题
如果您没有开发证书,您可以在Mac中使用以下命令生成一个:
dotnet dev-certs https --clean dotnet dev-certs https --trust
阅读更多https://learn.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-3.1&tabs=netcore-cli
b91juud34#
如果您有一个Web Site项目,在解决方案资源管理器中具有地球仪图标,则启用SSL的方式与Web App项目略有不同,后者具有矩形中的地球图标,其他答案适用于此。网站项目没有Web选项卡。而是将SSL URL从项目属性(F4)复制到项目属性页中的Start URL(Shift F4)。此步骤是可选的,但如果不执行此步骤,则必须在浏览器中手动键入SSL端口号。此外,对于任何类型的Web项目,在属性中输入哪个端口号并不重要。最简单的方法是接受VisualStudio默认填写的端口号,但另一个空闲端口号也可以。当然,您将使用自签名证书,即签署VS。所以浏览器可能会抱怨这一点,为了用SSL调试你的项目,你必须在浏览器中接受一个异常。
Web Site
bsxbgnwa5#
当我的IIS本地主机开发证书过期时,我会出现此问题。我从here中提取了解决方案。
MMC.exe
dotnet dev-certs https --trust
5条答案
按热度按时间ntjbwcob1#
在使用SSL时,我经常看到这个问题,并且发现(特别是在团队环境中处理其他人的项目时)Visual Studio项目Web设置(SSL端口)有时会变得混乱。我是这么做的
这总是为我解决问题。
lstz6jyr2#
假设您有一个.NET MVC或Web API项目,并且希望在SSL上运行它。换句话说,您希望在类似于https://localhost:xxxx的URL上启动项目。第一步很容易。您只需在解决方案中选择MVC/Web API项目名称,并在属性窗口中找到名为“SSL Enabled”的属性:
相同的属性窗口还将显示应用程序的HTTPS URL。在上面的例子中,它是https://localhost:44300/。复制该URL并转到项目属性窗口。找到“Web”选项卡,然后使用https地址覆盖“项目URL”属性:
启动应用程序。您可能会在浏览器中收到一条消息,说localhost地址不受信任,您可以继续访问该网站,风险自负。下面是一个瑞典语的Chrome示例:
问题是Visual Studio自动为您安装的证书不受信任。您可以在证书管理单元的计算机级证书的“个人”文件夹中找到证书:
如果双击证书,您将看到它不受信任:
该消息还提供了解决方案:必须将证书导入到受信任的根证书颁发机构文件夹中。你会看到,作为一个文件夹,在同一管理单元就在下面的“个人”。那么我们怎么做呢?
导出
应该有一条弹出消息,说明导出成功。
导入
应该有一条消息,说明导入成功。
如果您现在返回到Personal存储区并双击localhost证书,那么您应该看到它是受信任的:
好了,让我们再次启动.NET Web项目,打开的页面应该会在没有任何警告的情况下打开。如果您仍然看到相同的问题,请使用全新的浏览器会话进行测试,例如。在IE中:
您还可以从浏览器窗口查看提取的证书。下面是一个来自IE的例子:
pvcm50d13#
@MattW我正在使用Mac,遇到了这个问题。我在macOS Catalina 上使用Visual Studio 2019 for Mac。我打开了项目的“项目选项”,并在ASP.NETCore的默认运行配置下的“应用程序URL”中将“HTTP”更改为“HTTPS”
我已经有了一个localhost的自签名证书,所以Visual Studio给了我一个消息框,要求我使用Keychain的开发证书。它要求我输入密码并使用证书。该应用程序在“HTTPS”上没有任何问题
如果您没有开发证书,您可以在Mac中使用以下命令生成一个:
阅读更多https://learn.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-3.1&tabs=netcore-cli
b91juud34#
如果您有一个
Web Site
项目,在解决方案资源管理器中具有地球仪图标,则启用SSL的方式与Web App项目略有不同,后者具有矩形中的地球图标,其他答案适用于此。网站项目没有Web选项卡。而是将SSL URL从项目属性(F4)复制到项目属性页中的Start URL(Shift F4)。此步骤是可选的,但如果不执行此步骤,则必须在浏览器中手动键入SSL端口号。
此外,对于任何类型的Web项目,在属性中输入哪个端口号并不重要。最简单的方法是接受VisualStudio默认填写的端口号,但另一个空闲端口号也可以。
当然,您将使用自签名证书,即签署VS。所以浏览器可能会抱怨这一点,为了用SSL调试你的项目,你必须在浏览器中接受一个异常。
bsxbgnwa5#
当我的IIS本地主机开发证书过期时,我会出现此问题。我从here中提取了解决方案。
MMC.exe
,“查找名称为“localhost”的证书”,并删除过期的证书。dotnet dev-certs https --trust
中)