https自制证书详解及okhttp3访问自制证书连接
更新时间:2024-06-15 03:38:01 阅读量: 综合文库 文档下载
Https可行性分析
方正国际软件有限公司 2017年06月22日
目录
1
服务器端调整 .......................................................................................................................... 2 1.1 生成CA证书 .................................................................................................................... 2
1.1.1 创建私钥 .................................................................................................................. 2 1.1.2 创建证书请求 .......................................................................................................... 2 1.1.3 自签署证书 .............................................................................................................. 2 1.1.4 证书导出成浏览器支持的.p12格式 ...................................................................... 3 1.2 生成server证书 .............................................................................................................. 3
1.2.1 创建私钥 .................................................................................................................. 3 1.2.2 创建证书请求 .......................................................................................................... 3 1.2.3 自签署证书 .............................................................................................................. 3 1.2.4 将证书导成支持的.p12格式 .................................................................................. 4 1.3 生成client证书................................................................................................................ 4
1.3.1 创建私钥 .................................................................................................................. 4 1.3.2 创建证书请求 .......................................................................................................... 4 1.3.3 自签署证书 .............................................................................................................. 5 1.3.4 将证书导成浏览器支持的.p12格式 ...................................................................... 5 1.4 根据CA证书生成JKS文件 ............................................................................................. 5 1.5 配置tomcat ssl ................................................................................................................. 5 1.6 验证ssl配置 .................................................................................................................... 5 2
Okhttp端调整 .......................................................................................................................... 6 2.1 第三方签发证书 .............................................................................................................. 6 2.2 自制证书 .......................................................................................................................... 6
2.2.1 访问 .......................................................................................................................... 7
1
插图和附表清单
图 1 .......................................................................................................................................... 6
2
修改记录
序号 日期 作者 修改记录 评审 1 2017-06-20 张长东 创建 1
1
1.1
服务器端调整
生成CA证书
目前不使用第三方权威机构的CA来认证,自己充当CA的角色。 需要工具:openssl(先安装openssl)
1.1.1 创建私钥
C:\\OpenSSL\\bin>openssl genrsa -out ca/ca-key.pem 1024 注:现在bin下创建ca文件夹
1.1.2 创建证书请求
C:\\OpenSSL\\bin>openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem
-----
Country Name (2 letter code) [AU]:cn
State or Province Name (full name) [Some-State]:zhejiang Locality Name (eg, city) []:hangzhou
Organization Name (eg, company) [Internet Widgits Pty Ltd]:skyvision Organizational Unit Name (eg, section) []:test Common Name (eg, YOUR name) []:root Email Address []:sky
1.1.3 自签署证书
C:\\OpenSSL\\bin>openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 3650
2
1.1.4 证书导出成浏览器支持的.p12格式
C:\\OpenSSL\\bin>openssl pkcs12 -export -clcerts -in ca/ca-cert.pem -inkey ca/ca-key.pem -out ca/ca.p12
密码:changeit
1.2 生成server证书
1.2.1 创建私钥
C:\\OpenSSL\\bin>openssl genrsa -out server/server-key.pem 1024
1.2.2 创建证书请求
C:\\OpenSSL\\bin>openssl req -new -out server/server-req.csr -key server/server-key.pem -----
Country Name (2 letter code) [AU]:cn
State or Province Name (full name) [Some-State]:zhejiang Locality Name (eg, city) []:hangzhou
Organization Name (eg, company) [Internet Widgits Pty Ltd]:skyvision Organizational Unit Name (eg, section) []:test
Common Name (eg, YOUR name) []:192.168.1.246 注释:一定要写服务器所在的ip地址 Email Address []:sky
1.2.3 自签署证书
C:\\OpenSSL\\bin>openssl x509 -req -in server/server-req.csr -out server/server-cert.pem -signkey server/server-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650
3
1.2.4 将证书导成支持的.p12格式
C:\\OpenSSL\\bin>openssl pkcs12 -export -clcerts -in server/server-cert.pem -inkey server/server-key.pem -out server/server.p12 密码:changeit
1.3 生成client证书
1.3.1 创建私钥
C:\\OpenSSL\\bin>openssl genrsa -out client/client-key.pem 1024
1.3.2 创建证书请求
C:\\OpenSSL\\bin>openssl req -new -out client/client-req.csr -key client/client-key.pem -----
Country Name (2 letter code) [AU]:cn
State or Province Name (full name) [Some-State]:zhejiang Locality Name (eg, city) []:hangzhou
Organization Name (eg, company) [Internet Widgits Pty Ltd]:skyvision Organizational Unit Name (eg, section) []:test Common Name (eg, YOUR name) []:sky
Email Address []:sky 注释:就是登入中心的用户(本来用户名应该是Common Name,但是中山公安的不知道为什么使用的Email Address,其他版本没有测试) Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:123456 An optional company name []:tsing
4
1.3.3 自签署证书
C:\\OpenSSL\\bin>openssl x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey client/client-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650
1.3.4 将证书导成浏览器支持的.p12格式
C:\\OpenSSL\\bin>openssl pkcs12 -export -clcerts -in client/client-cert.pem -inkey client/client-key.pem -out client/client.p12 密码:changeit
1.4 根据CA证书生成JKS文件
C:\\Java\\jdk1.5.0_09\\bin > keytool -keystore C:\\openssl\\bin\\jks\\truststore.jks -keypass 222222 -storepass 222222 -alias ca -import -trustcacerts -file C:\\openssl\\bin\\ca\\ca-cert.pem
1.5 配置tomcat ssl
修改conf/server.xml ,keystorefile, truststorefile设置为正确的相关路径 xml 代码 :
clientAuth=\sslProtocol=\keystoreFile=\keystorePass=\ keystoreType=\ truststoreFile=\ truststorePass=\ 1.6 验证ssl配置 启动tomcat,在浏览器中访问https://ip:8443,如果配置正确的话在第三方签发的证书地址 栏会变绿,自制的证书会拦截(打死都要进去),会提示你不安全字样。 5 图1 2 2.1 Okhttp端调整 第三方签发证书 第三方签发证书直接使用https://...访问即可。 newRequest.Builder().url(url).build(); 2.2 自制证书 将okhttp设置成信任所有证书 java代码: OkHttpClient.Builder builder = new OkHttpClient.Builder(); builder.hostnameVerifier(new TrustAllHostnameVerifier()) .sslSocketFactory(createSSLSocketFactory(),new TrustAllManager()); //安全套接层工厂,HTTPS相关,用于创建SSLSocket private static SSLSocketFactorycreateSSLSocketFactory() { SSLSocketFactorysSLSocketFactory = null; try { SSLContextsc = SSLContext.getInstance(\sc.init(null, new TrustManager[]{new TrustAllManager()}, newSecureRandom()); sSLSocketFactory = sc.getSocketFactory(); } catch (Exception e) { } 6 returnsSLSocketFactory; } private static class TrustAllManager implements X509TrustManager { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throwsCertificateException { } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throwsCertificateException { } @Override public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } } private static class TrustAllHostnameVerifier implements HostnameVerifier { @Override publicboolean verify(String paramString, SSLSessionparamSSLSession) { } return true; } 2.2.1 访问 newRequest.Builder().url(“https://....”).build(); 访问成功。 7
正在阅读:
https自制证书详解及okhttp3访问自制证书连接06-15
教学-动物生物学-实验课件-实验十二 鲫鱼的外形观察和内部解剖08-05
小学数学三年级上册背诵知识点06-22
观消防队有感作文400字06-17
高品质服务案例12-15
数字教育资源教学总结08-01
C#程序设计实践与分析实验一 参考答案03-14
早期冠心病能治好吗07-08
恭王府一游作文600字06-24
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 自制
- 证书
- 详解
- 连接
- okhttp3
- 访问
- https
- 对外经济贸易大学继续教育学院管理会计作业一二
- 背完这444句,你的口语绝对不成问题了
- 基于单片机实现高精度电子秤的设计
- 英国1980年时效法案(译文终稿)
- 公共政策自考复习(选择题)
- 08-09减轻学生课业负担工作实施方案1
- “十三五” 中国教育信息化行业全景调研及投资可行性研究报告 28
- 微波密封消解法测水中化学需氧量
- 计算教学中应注意的问题
- 实验动物知识与技能测验多选题(答案)
- 军用电缆保护方案
- “十一五”节能规划(2006年12月) - 图文
- 浅谈社会与历史学科教学要构建学生的积极心态
- 安全文明生产考核评分表(DOC)
- 2019高中地理 第1章 区域地理环境和人类活动章末综合测评 中图版
- 支部党员管理制度
- 彬县“十一五”暨2010年经济社会发展概况(赴台考察缩略版)
- 浅谈中小企业内部控制的问题最新
- 环保社团项目的选择
- 冀教版小学语文四年级上册第四单元复习要点