问题标签 [sslsocketfactory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
129 浏览

java - 仅为特定 httpclient 注册协议

美好的一天,我在我的代码中指的是这个网站。https://hc.apache.org/httpclient-3.x/sslguide.html

我正在使用旧版本的 httpClient 和 apache 协议。

我已经注册了一个协议,以下是我的代码的一部分

这将导致我的其他 httpClient 出现问题,因为协议已经在此sf套接字工厂注册。

我打算这样做只注册协议httpClient而不是全部。但我找不到这样做的方法。

任何人都可以建议?

0 投票
1 回答
640 浏览

java - 无法在 Java 中使用 HTTPS GET 请求读取任何响应

我对 HTTPS 请求有疑问,我想制作一个非常简单的 Java 程序来读取 GET 请求的响应。问题是我看不到任何响应,并且程序在屏幕上什么也不打印。

这是代码:

我正在将 SSLSocket 与 SSLSocketFactory 一起使用,是否需要执行任何程序才能从服务器获取响应?

0 投票
0 回答
291 浏览

spring-boot - 创建 bean 'jpaVendorAdapter' 时出错,无法实例化 [jpa.JpaVendorAdapter],NoClassDefFoundError: SslSocketFactory

当我尝试运行 Cmd >mvn clean spring-boot:run -DskipTests

我已经尝试过的

  1. 已删除文件夹 C:\Users\xyz.m2\repository
  2. Pom 文件版本冲突
  3. 清洁包装
  4. 删除项目并重试

如果您在阅读时发现问题请在此处查看https://docs.google.com/document/d/1i7_1gn9W6kybhueWU8CmVEByrE6ageNjqlsc4jx4cGA/edit?usp=sharing

0 投票
0 回答
103 浏览

java - 提高 SSLSocketFactory 设置/首次 HTTPS 请求性能

是否可以提高用于发出 HTTPS 请求的 SSLSocketFactory/SSLContext 初始设置的性能?

在我测试的几台机器上,第一个HTTPS 请求需要 >600 毫秒,这对于我们的用例来说太高了。

定时:

正如我发现的那样,大部分时间实际上并没有花在连接本身(握手、数据传输等)上,而是花在了SSLSocketFactory.

取消注释工厂代码后:

我也尝试过直接创建 SSLContext ( SSLContext sc = SSLContext.getInstance("TLSv1.2"); sc.init(...); ...),但性能几乎相同。

:上下文设置如此昂贵有什么特别的原因吗?是否可以加快速度和/或使用一些不会受到相同初始成本影响的替代库?

0 投票
2 回答
692 浏览

cloud - 无法从 Data Fusion 连接 Cloud SQL mySql / postgreSQL 实例

目标是使用 Cloud Data Fusion 连接 Cloud SQL mysql 或 postgreSQL 实例。

  • 使用 MySQL 和 postgreSQL 创建 Cloud SQL 实例
  • 创建了 Cloud Data Fusion 实例
  • 从牧马人 > 添加连接 > Cloud SQL MySQL
  • 将 Data Fusion 实例添加为 IAM 中的成员,并添加了对以下 Cloud SQL 客户端 Cloud Data Fusion API 服务代理的权限
  • 在添加连接中使用 jdbc url 作为 jdbc:mysql://google/mysql?cloudSqlInstance=&socketFactory=com.google.cloud.sql.mysql.SocketFactory&useSSL=false
  • 为 mySQL 添加了驱动程序:mysql-connector-java-5.1.39-bin.jar
  • 添加了 MySQL 套接字工厂 jar 作为库。

在测试连接时,它失败并出现错误:com.mysql.jdbc.Driver

期望与 Cloud SQL MySQL 的连接测试成功,以便可以构建数据融合管道。

0 投票
0 回答
177 浏览

authentication - SSLSocket.startHandshake 是否包含 SSLSocket 的证书验证和主机名验证?

从安全指南https://developer.android.com/training/articles/security-ssl.html#CommonHostnameProbs中,当 SSLSocket 与 HttpsUrlConnection 分开使用时,需要通过调用 hostnameverifier.verify() 方法手动验证主机名:

但我也看到安全代码示例说:

是否安全?在此套接字的读/写行为之前,我没有看到任何主机名验证方法被调用。socket.startHandShake() 是否包含它?

0 投票
0 回答
94 浏览

java-8 - 通过 SSLSocketFactory 连接时 Java 客户端支持哪些密码?

当我使用创建连接时,如何获得 Java客户端javax.net.ssl.SSLSocketFactory支持的密码列表?

我们使用 Java 8。

我已经签到了jre/lib/security/java.security。我只能找到禁用密码的列表。

在哪里可以找到支持的密码列表?

注意:我确实知道如何获取 Java服务器支持的密码列表。我想了解如何获取 Java客户端支持的密码列表。

添加

返回的列表getSupportedCipherSuites如下:

0 投票
1 回答
1536 浏览

java - 如何在新的(未弃用的)SSLSocketFactory 中加载私钥密码?

我当前的 TCP 客户端正在使用org.apache.http.conn.ssl.SSLSocketFactory
我正在迁移到的构建套接字import javax.net.ssl.SSLSocketFactory; 但是,我不确定如何加载存储在我已经拥有的 .p12 文件中的客户端证书的私钥,作为新 SSLSocketFactory 的上下文?

这是我现有的代码,使用已弃用的 SSLSocketFactory:

这是我可以从文档中管理的最佳代码:

  • 我认为问题在于我没有.custom()新库下的上下文方法。
    新的 SSLSocketFactory 使用什么?
  • 是不是 JKS 密钥库没有存储在其中的私钥的内部密码(我直到现在才使用 PKCS,不熟悉 JKS 格式),这就是为什么我看不到私钥密码被引用的原因至?
0 投票
1 回答
150 浏览

java - 通过默认 SSLSocketFactory 创建的 Socket 发送密码是否安全?

不假思索,我通过使用JavaSocket默认创建的连接发送了一个密码。SSLSocketFactory对于SSLSocketFactory.getDefault(),文档说明如下:

返回默认的 SSL 套接字工厂。第一次调用此方法时,ssl.SocketFactory.provider会检查安全属性。如果它不为 null,则加载并实例化具有该名称的类。如果成功并且对象是 的实例SSLSocketFactory,则将其设为默认 SSL 套接字工厂。

否则,此方法返回SSLContext.getDefault().getSocketFactory(). 如果该调用失败,则返回一个不工作的工厂。

我确信 Java 并没有试图欺骗我,但由于这是我第一次这样做,我想确保它是我可以依赖的密码加密的东西。

编辑:在服务器响应中“Set-Cookie”的属性数据的末尾,它显示“HttpOnly”,然后是“Secure”。我假设这意味着服务器已经确认连接是安全的,但我不是 100% 确定。

0 投票
1 回答
133 浏览

java - Java:如何在“常规” TCP Socket 和 SSLSocket 之间进行抽象

编辑:删除startHandshake();,因为它与问题无关并且很少需要(例如,在我的情况下不是)

我有一个相当具体和罕见的客户端-服务器协议(通过 TCP)。
我已经使用 SSLSocket 实现了它。
现在,我预见我可能需要在未加密的连接上使用相同的协议。

我的问题是实现协议的类有一个字段:(public SSLSocket currentSocket;
然后我的客户端类中的方法会做各种各样的.read(), .write(), flush()...

我考虑过更改字段类型,如下所示:public Socket currentSocket;
但是,问题是我的连接过程不兼容:

  • java.net.Socket 的默认构造函数显然不接受密钥库的东西

我不想仅仅因为这种差异而重新实现我的整个客户......

  • 我的一个想法是,当我需要一个纯文本套接字时,创建一个没有加密的 SSLSocket。
    我不知道这是否是一种专业的方式,或者它是否会起作用(服务器将期望在新用例中使用纯文本客户端套接字)

  • 我的另一个想法是定义两个字段,一个用于纯文本套接字,一个用于 SSL 套接字,然后根据需要使用逻辑将输入/输出流链接到正确的字段。但是,这将导致“挂起”字段。如果您使用 SSL,则会有一个冗余字段Socket plaintextSocket,反之亦然...

有没有办法让我的字段更加抽象,以便我可以在同一个客户端中定义它,然后根据实例化和连接currentSocket的已知变量(类似于 )指示稍微不同的客户端代码路径?needSSLsocket=true