如何使用.key和.pem文件在Android中创建套接字SSL?

如何使用.key和.pem文件在Android中创建套接字SSL?,android,sockets,ssl,Android,Sockets,Ssl,我的.key文件类似于: -----开始RSA私钥----- MIIEpAIBAAKCAQEA1j6eGXbHpqigZ1K//wnuyr5v/L2jFm7dzTtHJx8ZoMQ4CbsG 我的.pem文件类似于: -----开始证书----- MIIE4zCCA8ugAwIBAgIDBOziMA0GCSqGSIb3DQEBBQUAMDwxCzAJBgNVBAYTAlVT 我不知道这里有多少个认证步骤。我只想创建一个到IP和端口的ssl套接字,并在该套接字中发送/接收数据。 我试着使用keys

我的.key文件类似于: -----开始RSA私钥----- MIIEpAIBAAKCAQEA1j6eGXbHpqigZ1K//wnuyr5v/L2jFm7dzTtHJx8ZoMQ4CbsG

我的.pem文件类似于: -----开始证书----- MIIE4zCCA8ugAwIBAgIDBOziMA0GCSqGSIb3DQEBBQUAMDwxCzAJBgNVBAYTAlVT

我不知道这里有多少个认证步骤。我只想创建一个到IP和端口的ssl套接字,并在该套接字中发送/接收数据。 我试着使用keystock,但也许我对它不太了解,我总是出错

请给我一个指南或示例代码


非常感谢。

在创建SSL连接时,您只需要使用套接字来允许与服务器的连接,从而使其成为可信的源。为此,您需要使用X509格式的SSL证书,然后按照中的说明创建连接


给你

我假设
.key
.pem
文件表示执行HTTPS客户端身份验证时必须使用的客户端证书。不幸的是,Java/Android更喜欢不同的格式,因此我建议您将这两个文件导入到
BKS
文件中

创建
BKS
文件并导入现有的
.key
+
.pem
文件使用起来非常简单。启动密钥库资源管理器后,选择文件->新建密钥库->BKSv1。之后,您可以执行工具->导入密钥对并选择.pem文件。之后,密钥库资源管理器将要求您选择.key文件

最后,使用您选择的密码保存受保护的密钥存储


创建的
BKSv1
文件现在可以在您的Android应用程序中使用。例如,请参阅此问题中发布的代码:

链接文章是关于设置Android信任存储,而不是HTTPS客户端身份验证的密钥存储,因此其使用受到限制。此外,OP不需要生成(客户端)证书,因为他已经拥有.key和.pem文件。这是一个很好的链接。但我在一个线程中创建了所有内容,并得到错误:android.os.NetworkOnMainThreadException。我们需要为它创建线程吗?在Portecle 1.9(不确定其他版本)中,您的
.key
文件必须受密码保护,否则Portecle只会告诉您密钥无效。