SSLSocketFactory 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
基于 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
- 继承
- 属性
- 实现
注解
基于 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.SSLSocketFactory
Java 文档
本页的某些部分是根据 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 |
返回此 |
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 连接的分层套接字工厂。 |