速记:安卓Netty部署SSL/TLS和避坑指南

Posted 666小奇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了速记:安卓Netty部署SSL/TLS和避坑指南相关的知识,希望对你有一定的参考价值。

速记:安卓Netty部署SSL/TLS和避坑指南

先按照 https://blog.csdn.net/russle/article/details/99086684 方法操作

第一步 生成服务器端私钥和证书仓库命令

keytool -genkey -alias mySrvAlias1 -keysize 2048 -validity 365 -keyalg RSA -dname “CN=localhost” -keypass skeypass123 -storepass sstorepass456 -keystore yqServer.jks

-alias 别名
-keysize 2048 密钥长度2048位(这个长度的密钥目前可认为无法被暴力破解)
-validity 365 证书有效期365天,测试中365就高了,实际生产中我们会冲认证机构获取证书,有效期比较长
-keyalg RSA 使用RSA非对称加密算法
-dname "CN=localhost" 设置Common Name为localhost
-keypass skeypass123 密钥的访问密码为skeypass123 
-storepass sstorepass456 密钥库的访问密码为sstorepass456 
-keystore sChat.jks 指定生成的密钥库文件为sChata.jks

避坑:

在安卓运行时会出现如下错误:javax.net.ssl.SSLException: Received fatal alert: certificate_unknown
此时检测一下证书文件是否正常被读取,如果是放在assets下,建议先导出再加载
还会遇到如下错误 java.security.KeyStoreException: JKS not found
由于android无法直接使用 jks 格式的证书,所以需要转换为 bks 格式
参考:https://blog.csdn.net/u014361525/article/details/117835614
工具 Portecle 下载
https://jaist.dl.sourceforge.net/project/portecle/v1.11/portecle-1.11.zip
最后还有SunX509 TrustManagerFactory not available错误
KeyManagerFactory.getInstance("SunX509");换成TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());

以上是关于速记:安卓Netty部署SSL/TLS和避坑指南的主要内容,如果未能解决你的问题,请参考以下文章

速记:安卓Netty部署SSL/TLS和避坑指南

PowerMockito使用方法和避坑指南

Netty入门--使用SSL/TLS加密Netty程序

双刃剑MongoDB的学习和避坑

rsyslog详解实战和避坑

MongoDB 如何上手和避坑?