当前位置: 首页 > 知识库问答 >
问题:

Firebase信任库并设置Spring以接受来自Firebase的证书

孟福
2023-03-14

我在Firebase中托管了一个Angular PWA,并且我有一个我正在尝试与之通信的Spring Boot服务(目前在本地运行)。

Firebase出于善意,自动为托管html" target="_blank">应用程序创建SSL证书,因此它是安全的,并且只能通过HTTPS访问。

我无法解决的是如何设置我的Spring boot服务来接受/信任/允许这些连接,以便PWA可以进行基本的REST调用,例如(我甚至需要这样做吗?)。

我的第一个想法是将来自Firebase的证书添加到Spring boot truststore,但要么我做得不对,要么这是错误的方法,因为我只是得到了javax。网ssl。SSLHandshakeException:我试过的所有密码都没有共同的密码套件。

为此运行的命令如下:

从Angular应用程序URL下载证书

keytool -printcert -sslserver app.example.com:443 -rfc > temp.cert

从该证书创建信任库

keytool -keystore truststore.jks -alias example.com -import -file temp.cert

然后我只是把它加载到我的Spring Bootapplication.yml文件中

server:
  port: 8443
  ssl:
    key-store: classpath:truststore.jks
    key-password: secret
    key-alias: example.com

我不确定我是否做得完全错误,或者错过了重要的一步。

共有1个答案

柳英豪
2023-03-14

不幸的是,这种方法不起作用,但可能不是必需的。

您可能知道,SSL适用于“公钥加密”,它需要两个密钥:私钥和公钥。SSL证书基本上是公钥加上一些其他验证信息。

虽然我们可以像您所做的那样使用keytools提取SSL证书,但这不会为我们提供关键的私钥。出于安全原因,可能无法从Firebase导出私钥。

那么我们能做些什么呢?

>

如果您有Spring Boot服务的域名,那么您可以从Let’s Encrypt获得该域的免费SSL证书,并为Spring Boot进行配置。

另外,我注意到您试图创建一个信任库,而不是密钥库。信任库实际上是用于不同的东西(我们称之为客户端相互身份验证)——可能不是您需要的东西。有关更多信息,请参阅上一个线程。

 类似资料:
  • 目前,我在我的用户目录中的中有以下条目。 这将设置与git服务器交互时使用的证书(我公司的git服务器需要)。 但现在我无法克隆其他存储库(例如GitHub上的公共存储库),因为客户端总是使用配置好的证书,而该证书会被其他服务器拒绝。 我如何规避此认证问题?我可以将Git配置为使用Windows证书存储进行身份验证吗?

  • 我使用Firebase电话auth创建了一个号码发送活动和确认/otp片段。当定向到确认页面时,来自Firebase的6位短信代码会发送到输入的电话号码,但无论我做什么,输入的edittext和来自Firebase的代码都不匹配。当我将编辑文本留空时,它会重定向到我想要的片段,就好像它是正确的一样。你能帮我我在哪里犯了错误吗?我在确认片段中的代码如下; class FragmentRegister

  • 问题内容: 我试图使用(java)密钥工具创建一个自签名证书,但是当我尝试使用它时,出现以下异常(有关完整异常,请参见底部)。 我知道我可以使用以下代码绕过此代码: (资源) 但是我对此解决方案不感兴趣,因为我认为这会造成安全漏洞。(如果我错了,请纠正我)。 谁能指出我正确的方向?我目前正在本地进行测试,因此很容易进行更改。我可以访问服务器代码,客户端代码和.keystore文件。 更新资料 我试

  • 我正在尝试将Firebase与我的react应用程序一起使用。 我有一个配置文件如下: 当我尝试此操作时,会出现一个错误,显示: FIREBASE致命错误:无法确定FIREBASE数据库URL。在调用firebase时,请确保包含databaseURL选项。初始化app()。 我不能理解这个错误,因为我在初始化应用程序的调用中包含了配置。配置包括数据库URL。 如何初始化数据库?

  • 我有个小问题。我正在用selenium以特定的配置文件打开firefox浏览器,一个flash应用程序出现了。在这个应用程序中,我需要单击一些东西,所以我使用sikuli。问题是,当使用sikuli单击按钮时,我的应用程序会在匿名配置文件中打开浏览器,从而显示“不受信任的SSL证书”。 有没有办法为火狐的匿名配置文件设置AcceptUnTrust d证书? 我想提到的是,我的java代码中已经有s

  • 我希望能够根据设备模型有不同的Firebase远程配置参数值。 但是这样做之后,就不会在设备上检索到给定设备模型的正确值,设备只接收默认值。 有趣的是,当我基于user属性“user ID”创建一个访问群体,并使用该访问群体为远程配置参数定义一个值时,它可以正常工作。 还是有一个替代的方法来达到同样的目的?