的证书与任何主题备用名称都不匹配

2023-11-23

错误:

javax.net.ssl.SSLException: Certificate for <localhost> doesn't match any of the subject alternative names: [xxxxxxx.xxx.xxxxxx.xxx]

我的 Spring Boot 应用程序正在运行localhost。我也有隧道ssh通过腻子到服务器。

我做过的事情:

  • 我以各种方式手动创建/导入密钥/证书。
  • 我使用 keytool 中的 -ext 将 dns addr 和 localhost 添加到 SAN。
  • 我也用过一个开源java 文件来安装证书。
  • 我将主机文件更改为:127.0.0.1 xxx.xxx.xxxxxxx.xxx(如果我 ping dns 名称,它会响应本地主机地址)
  • 我使用 VM 参数 -Djavax.net.debug=ssl 来检查证书是否正确加载。

我缺少什么?顺便说一句,我也在使用 VPN。


创建证书时,您需要提供 localhost 作为使用者备用名称。您可以通过提供以下附加参数来做到这一点:-ext "SAN:c=DNS:localhost,IP:127.0.0.1"

所以像这样:

keytool -genkeypair -keyalg RSA -keysize 2048 -alias stackoverflow \
-dname "CN=stackoverflow,OU=Hakan,O=Hakan,C=NL" \
-ext "SAN:c=DNS:localhost,IP:127.0.0.1" -validity 3650 \
-storepass <password> -keypass <password> \
-keystore identity.jks -deststoretype pkcs12

一些解释:

SAN 字段将用于匹配请求中提供的主机名。因此,当您在本地主机上运行应用程序时,可以说https://localhost:443,并且您还想向该特定主机发出请求,那么该主机名也应该在 SAN 字段中可用;否则会在握手过程中失败。

让我们以 Stackoverflow 为例。为了能够通过 https 访问 stackoverflow,我们期望证书应至少包含以下条目stackoverflow.com

Below is the certificate SAN value of stackoverflow with the specific DNS highlighted for this example: Stackoverflow certificate san values

正如您所看到的,它还包含其他 DNS 值。通过这种方式,网站所有者可以对多个网站/子域等使用相同的证书。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

的证书与任何主题备用名称都不匹配 的相关文章

随机推荐

  • if else 概念在功能文件(Gherkin 语言)中可用吗?

    无论如何 我们可以在功能文件中使用 if else 概念吗 例如 Scenario User should be able to check login page Given I am on login page When I click
  • Chrome 中的 Azure 无限重定向循环

    我有一个 MVC5 Azure 网站 昨晚运行良好 现在 当尝试通过 chrome 登录时 它似乎陷入了无限重定向循环 它在 Edge 和 FireFox 上运行良好 它使用 Azure AD 进行身份验证 重定向从主站点到login mi
  • 在 WebAPI 控制器中序列化 EF Code First 5.0 数据时出错

    我最初问过这个问题 如何解决 指定的包含路径无效 已回答 我的 Include 现在正在工作 但是 当序列化器尝试工作时 它很神奇 我收到以下错误 You must write an attribute type object after
  • Android中使用MediaPlayer播放mp3文件列表

    我在 Android 中使用 MediaPlayer 重现多个 mp3 文件时遇到问题 我能够复制一个文件 但我没有找到任何有用的东西来逐个复制不同的文件 我现在用来重现一个文件的代码是 public MediaPlayer mediaPl
  • 使用 jquery 禁用输入 type="image" 的正确方法是什么?

    使用 jQuery 我尝试禁用这样的输入字段
  • 从两个字符串中获取编辑

    我将深入探讨我的问题 如果您不想阅读所有内容 可以跳至 TL DR 我正在尝试做什么 我需要存储一个 文件 文本文件 可以由用户编辑 如果我有原始文件 这可能是巨大的 Lorem ipsum dolor 坐 amet 用户要进行更改 Foo
  • 收集多组列

    我从一项在线调查中获得了数据 其中受访者回答了 1 3 次问题 调查软件 Qualtrics 将这些数据记录在多个列中 即调查中的 Q3 2 将包含列Q3 2 1 Q3 2 2 and Q3 2 3 df lt data frame id
  • 文本视图中的触摸坐标

    我在文本视图上使用触摸监听器 我可以通过运动事件获取触摸坐标 我可以获取我单击的字符索引或附近的字符坐标吗 Eg Hello Android 这是我的文字 现在我可以获得 x y 坐标 但是我可以获得字符索引吗 A 当我触摸它时 您必须重写
  • Rails 3.1 资产在生产中没有指纹

    刚开始适应rails 3 1 我开始编写coffeescript和sass 开发中一切正常 当我在生产中运行服务器时 我只得到 在页面的源代码中 没有生成哈希码 并且两个资产都有路由错误 Routing Error No route mat
  • C中“==”运算符的返回值

    我是否可以假设在 C 中 如果两个值相等 运算符将始终计算为 1 或者它可以计算为其他 真 值 struct ss int id struct os int sid int state int count struct ss s int s
  • 使用 ABAP 7.40+ 语法进行最有效的 itab 过滤

    在 7 40 版本中 我们有很多方法来过滤内部表数据 例如 可以使用这样的 ABAP 结构 FILTER操作员 DATA lt extract FILTER lt bseg USING KEY matnr bwtar WHERE matnr
  • 如何在node.js中保存.env文件中的更改

    I use dotenv用于读取环境变量 像这样 let dotenv require dotenv config path env console log process env DB HOST 现在我想保存更改 env文件 我找不到任何
  • 什么是非线性模式

    我正在阅读有关servant api DSL 参见 pdfhere 引用自第 5 2 节 类型安全链接 强调是我添加的 type family ElSymbol e s Symbol a Bool where ElSymbol s gt e
  • 如何使用自定义的类文件对象作为子进程 stdout/stderr?

    考虑这段代码 其中subprocess Popen被催生 我想写入子进程 stdout and stderr转到我的自定义文件对象 write 方法 但事实并非如此 import subprocess class Printer def i
  • PL/pgSQL 匿名代码块

    在 PostgreSQL 9 0 中 我有这个 PLPGSQL 匿名代码块 DO DECLARE bigobject integer BEGIN SELECT lo creat 1 INTO bigobject ALTER LARGE OB
  • Android任务亲和性的使用

    我正在阅读有关任务亲和性的内容并创建了一个具有以下活动的演示应用程序 A B gt 任务亲和力 com ando C D gt 任务亲和力 com ando E 据说 具有相同任务亲和性的活动会秘密打开另一个活动的单个实例 因此 我在每个活
  • Android 深色模式:夜间值不起作用

    我正在我的应用程序中开发日 夜功能 因此我阅读了这些文档并开始开发它 它在白天或夜间的默认值下工作正常 用精细方法AppCompatDelegate setDefaultNightMode 用于定制night我创建的主题颜色价值观之夜文件夹
  • java中如何找出谁创建了线程?

    在tomcat中 如果web应用程序确实停止了非守护线程 则tomcat无法通过shutdown sh关闭 例如 public class demo implements ServletContextListener public void
  • NSTextAlignment 对齐到 UILabel 文本对齐在 iOS6 上会崩溃

    我现在使用Xcode 4 5和iOS6 iOS6改变了UILabel文本对齐方式 label textAlignment NSTextAlignmentJustified 该代码将在带有 ios6 SDK 的 iPhone 6 0 模拟器上
  • 的证书与任何主题备用名称都不匹配

    错误 javax net ssl SSLException Certificate for