MINA/Netty 自签发证书TLS加密
MINA/Netty 自签发证书TLS加密
SSL/TLS概念以及应用
证书创建过程
- 创建服务器证书
1 |
|
2.从服务端证书导出 server.cer
1 |
|
3.创建客户端jks clientkey.jks
1 |
|
4.从客户端导出cer client.cer
1 |
|
5.把server.cer 导入到clienttrust.jks
1 |
|
6.把client.cer 导入到servertrust.jks
1 |
|
Android app 证书转换
7.转换clientkey.jks为clientkey.bks( 使用Portec工具、使用文档)
8.转换clienttrust.jks 为 clienttrust.bks(同步骤7)
注:也可以在不使用Portecle工具的情况下使用BC命令行,参照这篇netty 双向SSL/TLS双向认证
BC库注意事项
/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/security
该路径下配置Java.security文本 更改RSA 适配相应size、配置bc库
Android支持的协议以及版本
Algorithm | Supported API Levels |
---|---|
Default | 10+ |
SSL | 10+ |
SSLv3 | 10-25 |
TLS | 1+ |
TLSv1 | 10+ |
TLSv1.1 | 16+ |
TLSv1.2 | 16+ |
遇到的问题
java.lang.IllegalArgumentException
1 |
|
相应问题参照 Google Android “Cipher suites”
参考
Java Secure Socket Extension (JSSE) Reference Guide
Google Dev Android SSLContext参考
示例
MINA/Netty 自签发证书TLS加密
http://example.com/2017/12/26/program/MINA-Netty 自签发证书TLS加密/