SSLSocketFactory 类

定义

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

[Android.Runtime.Register("org/apache/http/conn/ssl/SSLSocketFactory", DoNotGenerateAcw=true)]
public class SSLSocketFactory : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Org.Apache.Http.Conn.Schemes.ILayeredSocketFactory
[<Android.Runtime.Register("org/apache/http/conn/ssl/SSLSocketFactory", DoNotGenerateAcw=true)>]
type SSLSocketFactory = class
    inherit Object
    interface ILayeredSocketFactory
    interface ISocketFactory
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
继承
SSLSocketFactory
属性
实现

注解

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。 。

SSLSocketFactory 可用于根据受信任的证书列表验证 HTTPS 服务器的标识,并使用私钥向 HTTPS 服务器进行身份验证。

SSLSocketFactory 在提供 KeyStore truststore 包含一个或多个受信任的证书的文件时,将启用服务器身份验证。 如果目标 HTTPS 服务器尝试使用不受信任的证书对自身进行身份验证,则客户端安全套接字将在 SSL 会话握手期间拒绝连接。

使用 JDK keytool 实用工具导入受信任的证书并生成信任存储文件:

keytool -import -alias "my server cert" -file server.crt -keystore my.truststore

</p>

使用包含私钥/公钥证书对的文件提供 KeyStore keystore 时,SSLSocketFactory 将启用客户端身份验证。 客户端安全套接字将在 SSL 会话握手期间使用私钥向目标 HTTPS 服务器进行身份验证(如果服务器请求这样做)。 目标 HTTPS 服务器将轮次验证客户端提供的证书,以便建立客户端的真实性

使用以下操作序列生成密钥存储文件

<ul><li>

使用 JDK keytool 实用工具生成新密钥

keytool -genkey -v -alias "my client key" -validity 365 -keystore my.keystore

为简单起见,将密钥的密码与密钥存储 </p></li li><的密码相同>

颁发证书签名请求(CSR)

keytool -certreq -alias "my client key" -file mycertreq.csr -keystore my.keystore

</p></li li><>

将证书请求发送到受信任的证书颁发机构进行签名。 可以选择充当自己的 CA,并使用 PKI 工具(如 OpenSSL)对证书请求进行签名。

</li li><>

导入受信任的 CA 根证书

keytool -import -alias "my trusted ca" -file caroot.crt -keystore my.keystore

</p></li li><>

导入包含完整证书链的 PKCS#7 文件

keytool -import -alias "my client key" -file mycert.p7 -keystore my.keystore

</p></li li><>

验证生成的密钥存储文件的内容

keytool -list -v -keystore my.keystore

</p></li></ul>

此成员已弃用。 请改用 java.net.URL#openConnection。 有关更多详细信息,请访问 此网页

适用于 . 的 org.apache.http.conn.ssl.SSLSocketFactoryJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

SSLSocketFactory(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

SSLSocketFactory(KeyStore, String, KeyStore)

创建默认 SSL 套接字工厂。

SSLSocketFactory(KeyStore, String)

创建默认 SSL 套接字工厂。

SSLSocketFactory(KeyStore)

创建默认 SSL 套接字工厂。

SSLSocketFactory(String, KeyStore, String, KeyStore, SecureRandom, IHostNameResolver)

创建默认 SSL 套接字工厂。

字段

Ssl
Sslv2
Tls

属性

AllowAllHostnameVerifier
BrowserCompatibleHostnameVerifier
Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
HostnameVerifier
JniIdentityHashCode

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

(继承自 Object)
JniPeerMembers

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

PeerReference

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

(继承自 Object)
SocketFactory

获取 SSLProtocolSocketFactory 的单一实例。

StrictHostnameVerifier
ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

方法

Clone()

创建并返回此对象的副本。

(继承自 Object)
ConnectSocket(Socket, String, Int32, InetAddress, Int32, IHttpParams)

将套接字连接到给定主机。

ConnectSocketAsync(Socket, String, Int32, InetAddress, Int32, IHttpParams)

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

CreateSocket()

创建新的未连接的套接字。

CreateSocket(Socket, String, Int32, Boolean)

返回一个连接到给定主机的套接字,该主机分层在现有套接字上。

CreateSocketAsync()

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

CreateSocketAsync(Socket, String, Int32, Boolean)

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

Dispose()

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

(继承自 Object)
Dispose(Boolean)

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

(继承自 Object)
Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
IsSecure(Socket)

检查套接字连接是否安全。

JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
ToArray<T>()

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

(继承自 Object)
Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em> 或 <em>interrupted</em>。<><

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)

显式接口实现

IJavaPeerable.Disposed()

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

(继承自 Object)
IJavaPeerable.Finalized()

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

GetJniTypeName(IJavaPeerable)

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

CreateSocketAsync(ILayeredSocketFactory, Socket, String, Int32, Boolean)

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

ConnectSocketAsync(ISocketFactory, Socket, String, Int32, InetAddress, Int32, IHttpParams)

基于 JSSE 的 TLS/SSL 连接的分层套接字工厂。

适用于