HTTPS系列之应用篇

一般支持的https的网站基本都是CA机构颁发的证书,默认情况下是可以信任

如果是自己生成的证书,就要自己配置一下

单向认证配置:

客服端配置
需要的证书 xxx.cer

1,可以将证书文档copy到安卓工程目录下只要能读取到就行, 比如放在assets文件夹下
或者使用 keytool -printcert -rfc -file xxx.cer获得证书的字符串形式.
2,配置到对应的网络请求工具

WebServer服务端配置
1,生成证书
keytool -genkey -alias app_server -keyalg RSA -keystore app_server.jks -validity 3600 -storepass 123456
执行命令即可生成一个证书请求文件app_server.jks,密钥库口令为:123456.
2,用app_server.jks来签发证书
keytool -export -alias app_server -file app_server.cer -keystore app_server.jks -storepass 123456
可生成包含公钥的证书 app_server.cer 这个给客户端配置要用
3,配置Tomcat
配置tomcat/conf/sever.xml
Service标签中,加入

<Connector 
    SSLEnabled="true" 
    acceptCount="100" 
    clientAuth="false" 
    disableUploadTimeout="true" 
    enableLookups="true" 
    keystoreFile="刚生成的xxx.jks路径" 
    keystorePass="对应的密钥"
     maxSpareThreads="75" 
    maxThreads="200" 
    minSpareThreads="5" port="8443" 
    protocol="org.apache.coyote.http11.Http11NioProtocol" 
    scheme="https" 
    secure="true" 
    sslProtocol="TLS"
      /> 

双向证书验证

客户端:
1,需要配置服务端给的xxx.cer文件
2,同时和单向一样要再生成一套 xxx.cer, xxx.jks文件并且要配置 xxx.jks文件
但是xxx.jks是java默认支持的,android并不支持,所以要使用工具进行转换成bks格式的证书文件

服务端:
1,keytool -import -alias app_client -file app_client.cer -keystore app_client_for_sever.jks
执行命令将 xxx.cer添加到 xxx.jks当中

2,在Connector标签,添加些属性.其他属性与前面一致

 <Connector    
    clientAuth="true"
    truststoreFile="/path/xxx.jks" 
      /> 

参考:
http://blog.csdn.net/lmj623565791/article/details/48129405

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容