use*_*104 2 ssl android ssl-certificate truststore
我有一个与我的主机服务器通信的 Android 应用程序。应用程序和服务器通过 SSL 进行通信。每年,我都必须更新主机服务器中的(自签名)证书。每次该证书到期时,我都必须通过创建自己TrustManager的证书并直接信任新证书来相应地更新我的 Android 应用程序。这是完美的工作。
问题是,我不想在每次证书到期时修改我的 Android 应用程序。所以问题是,我如何信任我颁发的所有自签名证书?同样,只有我的自签名证书。
这些是限制:
这就是我生成证书的方式:
openssl req -newkey rsa:4096 \
-x509 \
-sha256 \
-days 365 \
-nodes \
-out selfSignedCert.crt \
-keyout newPrivate.key
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助。
创建有效期为 10 年的 CA 证书。使用 CA 证书签署服务器证书。服务器证书的有效期应为 1 年或更短。在您的应用程序中包含 CA 证书并将其添加到您的自定义 TrustManager 中。现在您只需要在 CA 证书到期时每 10 年发布一次新应用程序。您的 TrustManager 应接受由您的 CA 证书签名的所有证书。
详细步骤: 1. 创建 CA 密钥
sudo openssl genrsa -out CA/rocketCA.key 1024
Run Code Online (Sandbox Code Playgroud)
openssl req -new -key CA/rocketCA.key -out CA/rocketCA.csr
Run Code Online (Sandbox Code Playgroud)
sudo openssl x509 -req -days 3650 -in CA/rocketCA.csr -out CA/rocketCA.crt -signkey CA/rocketCA.key
Run Code Online (Sandbox Code Playgroud)
openssl x509 -in CA/hitenCA.crt -text
Run Code Online (Sandbox Code Playgroud)
sudo openssl genrsa -des3 -out server/keys/rocket.example.com.key 1024
Run Code Online (Sandbox Code Playgroud)
openssl req -new -key server/keys/rocket.example.com.key -out server/requests/rocket.example.com.csr
Run Code Online (Sandbox Code Playgroud)
sudo openssl ca -days 3650 -in server/requests/rocket.example.com.csr -cert CA/rocketCA.crt -keyfile CA/rocketCA.key -out server/certificates/rocket.example.com.crt
Run Code Online (Sandbox Code Playgroud)
openssl x509 -in server/certificates/rocket.example.com.crt -text
Run Code Online (Sandbox Code Playgroud)
要寻找的关键值是:
Subject CN=rocket.example.com
Issuer CN=rocketCA
Run Code Online (Sandbox Code Playgroud)
详细步骤参考:(你不需要Mutual Auth部分)
| 归档时间: |
|
| 查看次数: |
582 次 |
| 最近记录: |