我正在创建一个nextjs应用程序,使用.NET核心API作为后端,我使用nextjs内置的api路由作为后端的代理(允许服务器端处理auth数据到cookie中,也可以模糊端点)。
但是,我目前得到这个错误:
“获取错误:对https://localhost:7001/endpoint的请求失败,原因:自签名证书”
我第一次运行dotnet dev-certs https --trust
是一些人推荐的答案/网站/博客。但是我收到了这样的消息:
“有效的HTTPS证书已存在。”
然后,我按照这个教程,建议设置一个“development”CA文件集使用openSSL命令与bash.并创建了一个证书,但我不知道如何确切地安装它,我已经添加到我的机器(Windows)的证书存储,但我不知道如何使它工作的localhost具体(可能需要一个变化的设置从该职位?).
有没有一种方法可以简单地让它在本地工作?我觉得这是一个相当标准的用例,但也许不是?nextjs -〉nextjs API路由-〉.NET核心Api。
当直接从应用程序向https://localhost:7001/endpoint发送获取请求时,请求可以正常工作,但当api/endpoint.js路由文件(在“服务器”上)调用获取时,请求会失败。nextjs应用程序是否需要在https://localhost:3000而不是http上运行?是否因为nextjs应用程序中的/api路由不是来自安全的url?
在哪种情况下nextjs应用程序不默认使用https是有原因的呢?在网上看起来我需要对服务器进行自定义设置才能使其正常工作?
感觉这一切都不是很清楚/简单,但我相信这只是我的理解。
谢谢。
1条答案
按热度按时间svgewumm1#
Nextjs似乎没有现成的https解决方案,也不支持本地开发现成的SSL,可以使用local-ssl-proxy之类的东西来启用https。
如果你想自定义服务器,你可以使用devcert自动生成证书。更多细节,你可以参考this link。这里是一个完整的例子和教程,如何设置一个自定义的本地服务器与NextJS。
有用链接:How can I use Next.js over HTTPS instead of HTTP?
希望这对你有帮助。