Java 和 SSL - java.security.NoSuchAlgorithmException

2024-01-05

我已经构建了一个 Java 程序作为服务器上数据库的前端,并且尝试使用 SSL 来加密客户端和服务器之间的流量。这是我发出的用于创建服务器证书的命令:

keytool -genkey -alias localhost -keyalg RSA -keypass kpass123 -storepass kpass123 -keystore keystore.jks

这是相关代码:

System.setProperty("javax.net.ssl.keyStore",
                   "G:/Data/Android_Project/keystore.jks");

System.setProperty("javax.net.ssl.keyPassword", "kpass123");

SSLServerSocketFactory factory = 
    (SSLServerSocketFactory)SSLServerSocketFactory.getDefault();

SSLServerSocket accessSocket = 
    (SSLServerSocket)factory.createServerSocket(DB_ACCESS_PORT);

当我尝试运行这个时,我发现了这个:

java.security.NoSuchAlgorithmException:构造实现时出错(算法:默认,提供者:SunJSSE,类:com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)

我还发现“KeyPairGenerator”服务具有可用的算法 DIFFIEHELLMAN、DSA、RSA,而“SSLContext”具有算法 SSL、TLS、SSLV3、DEFAULT、TLSV1。

我是否需要找到某种方法将 RSA 安装到 SSLContext 服务中?我是否正在寻找正确的服务?我不应该使用 RSA 吗?

我对整个 SSL - 安全 - 证书这件事很陌生,令我震惊的是,这些不同的服务在应该访问相同的证书时却没有相同的算法。


Try javax.net.ssl.keyStorePassword代替javax.net.ssl.keyPassword: 后者没有提到JSSE 参考指南 http://download.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#Customization.

默认情况下,您提到的算法应该使用默认的安全提供程序。NoSuchAlgorithmException通常是由其他底层异常引起的(未找到文件、密码错误、密钥库类型错误……)。查看完整的堆栈跟踪很有用。

你也可以使用-Djavax.net.debug=ssl, 或者至少-Djavax.net.debug=ssl,keymanager,如果堆栈跟踪中的信息不充分,则获取更多调试信息。

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

Java 和 SSL - java.security.NoSuchAlgorithmException 的相关文章

随机推荐

  • 从多列中选择值到单列中

    我在数据库中有一个表 其中有 9 列 其中包含相同类型的数据 这些值是允许为空 我需要将每个非空值选择到一列值中 这些值不关心它们源自的行的标识 因此 对于看起来像这样的表 Id I1 I2 I3 1 x1 x2 x7 2 x3 null
  • AFNetworking 2 - 获取错误 json 正文 [重复]

    这个问题在这里已经有答案了 我用的是最新的AF网络对于我的应用程序 它与 REST API 服务器通信 当我得到一些500JSON 主体出现错误 如下所示 message my error message 我无法从以下位置检索此消息NSEr
  • 将导航抽屉添加到现有活动

    我正在编写一个应用程序 它已经包含很多代码 我决定要向主活动工具栏添加一个导航抽屉 但我不知道如何在不创建新的导航抽屉项目和复制的情况下做到这一点我的整个项目看起来工作量很大 是否有教程可以向现有项目添加导航抽屉 创建布局布局左菜单 xml
  • 将 Json 反序列化为 C# bool

    我需要帮助解决一个非常简单的问题 如何在不创建包装根对象的情况下将下面的 json 反序列化为 C bool 谢谢 f valid false 0 如果您正在使用Json Net http james newtonking com json
  • 我们如何才能使 __future__ 进口全球化?

    规格 Python 2 7 我正在开发一个具有多个模块的项目 我想激活所有模块中 future 模块的一些功能 我想在一个模块上导入我需要的所有功能 然后将该单个模块导入到每个其他模块 并使这些功能在所有模块中处于活动状态 或者达到这种效果
  • 为什么 W3C 建议将输入元素包装在

    标记中?

    我在网上看到了很多示例 其中表单的布局如下
  • android 设计注意事项:AsyncTask 与 Service(IntentService?)

    我正在设计一个 Android 应用程序 需要执行以下步骤 用户按下按钮或以其他方式指示 同步数据 同步过程将使用 REST Web 服务将数据移入和移出服务器 数据将存储在本地 SQLite 数据库中 同步过程应向 UI 提供状态更新 消
  • 如何在Python(Windows)中获取Spotify当前正在播放的歌曲?

    我想在 16x2 LCD 上显示 Spotify 中当前播放的歌曲 我正在考虑将 LCD 与我的 Arduino 连接起来 然后制作一个 Python 脚本 将 Spotify 当前播放的歌曲发送到 Arduino 言归正传 我正在寻找一种
  • MyISAM 上的全文索引,单列索引与多列索引

    我有一个非常大的表 4M 行 磁盘空间超过 40Gb 14Gb 数据和 28Gb 索引 我需要对组合和分离的多个字段进行全文搜索 这意味着我需要能够对单列和多列一起进行全文搜索 如下所示 用于组合搜索 SELECT column a col
  • 在 Python 中加速 Metropolis-Hastings 算法

    我有一些使用 MCMC 对后验分布进行采样的代码 特别是黑斯廷斯大都会 https en wikipedia org wiki Metropolis E2 80 93Hastings algorithm 我使用 scipy 生成随机样本 i
  • 如何使用 mvcsitemapprovider 将自定义 xml 标签添加到 sitemap.xml?

    基于 Google 的定义视频站点地图 https developers google com webmasters videosearch sitemaps 有一些xml标签应该添加到视频的站点地图中 应该是这样的
  • 我应该使用 Jenkins CI 服务器将 WAR 文件部署到 Tomcat 吗?

    我最近开始使用詹金斯来持续集成我的项目 它构建一个 WAR 文件 使用 Maven 和一个 Android 应用程序 使用 Ant 我还想自动将 WAR 的夜间构建部署到我的 Tomcat 测试服务器上 并将我的 Android 应用程序部
  • 如何使用列表中的名称创建新列

    我在网上搜索帖子以找到解决方案 但是 我无法识别任何 因此 我决定寻求你的帮助 我有一个包含数据框的列表 我从每个数据框中选择了某些列并将它们组合起来 当我组合两个数据框中的数据时 我想添加一个包含列表名称的列 但是 我无法实现这一点 这是
  • 尝试在 Android 上执行 MRC 或 MCR 指令时获取 ILL_ILLOPC(非法操作码)

    我正在使用 ARM Assembly 尝试访问多个协处理器寄存器 每当我有类似的事情 mcr p15 1 r1 c1 c0 or mrc p15 0 r0 c1 c0 I get signal 4 SIGILL code 1 ILL ILL
  • 如何在打字稿中声明带有部分特定键的“记录”类型?

    现在 我得到了这个 type T PlatformKey pf1 pf2 pf3 type T PlatformInfo key T PlatformKey name string k string any 我想声明一个 记录 类型 如下所
  • 不兼容的通配符类型应该兼容[重复]

    这个问题在这里已经有答案了 继从这个问题 https stackoverflow com questions 4459587 incompatible generic wildcard captures 它提供了一个解决方案 但没有解释它
  • 在 SQL Server 中透视和连接列中的值

    我有包含这些列的表 ID Name Value 1 Test1 0 2 Test2 1 3 Test3 0 4 Test4 0 5 Test5 1 我希望将旋转和连接的值列作为字符串 01001 下面的代码将给出预期的结果 SELECT R
  • 在所有页面上保留 AppBar Drawer Flutter

    我正在尝试创建一个统一的抽屉 可以在我的应用程序中的所有页面上访问 如何让它在所有这些页面中持续存在 而不必在每个 dart 文件中重新创建我的自定义抽屉小部件 为此有几种不同的选择 最基本的希望是您已经做过的事情 但无论如何我都会列出它
  • 谷歌应用程序脚本 - Gmail - 通过过滤器返回消息(不是线程)

    我为特定的传入电子邮件分配了不同的标签 并且在设置中禁用了线程 对话视图 我可以在网络应用程序中输入搜索 返回我想要的特定消息 例如 标签 customer01 标签 报告 然而 使用与 API 完全相同的过滤器会返回线程以及 Google
  • Java 和 SSL - java.security.NoSuchAlgorithmException

    我已经构建了一个 Java 程序作为服务器上数据库的前端 并且尝试使用 SSL 来加密客户端和服务器之间的流量 这是我发出的用于创建服务器证书的命令 keytool genkey alias localhost keyalg RSA key