https自制证书详解及okhttp3访问自制证书连接文档格式.docx
- 文档编号:16585576
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:6
- 大小:27.15KB
https自制证书详解及okhttp3访问自制证书连接文档格式.docx
《https自制证书详解及okhttp3访问自制证书连接文档格式.docx》由会员分享,可在线阅读,更多相关《https自制证书详解及okhttp3访问自制证书连接文档格式.docx(6页珍藏版)》请在冰豆网上搜索。
2.1第三方签发证书6
2.2自制证书6
2.2.1访问7
插图和附表清单
图16
修改记录
序号
日期
作者
评审
1
2017-06-20
张长东
创建
服务器端调整
生成CA证书
目前不使用第三方权威机构的CA来认证,自己充当CA的角色。
需要工具:
openssl(先安装openssl)
创建私钥
C:
\OpenSSL\bin>
openssl
genrsa
-out
ca/ca-key.pem
1024
注:
现在bin下创建ca文件夹
创建证书请求
req
-new
ca/ca-req.csr
-key
ca/ca-key.pem
-----
Country
Name
(2
letter
code)
[AU]:
cn
State
or
Province
(full
name)
[Some-State]:
zhejiang
Locality
(eg,
city)
[]:
hangzhou
Organization
company)
[Internet
Widgits
Pty
Ltd]:
skyvision
Organizational
Unit
section)
test
Common
YOUR
root
Address
sky
自签署证书
x509
-req
-in
ca/ca-cert.pem
-signkey
-days
3650
证书导出成浏览器支持的.p12格式
pkcs12
-export
-clcerts
-inkey
ca/ca.p12
密码:
changeit
生成server证书
server/server-key.pem
server/server-req.csr
192.168.1.246
注释:
一定要写服务器所在的ip地址
sky
server/server-cert.pem
-CA
-CAkey
-CAcreateserial
3650
将证书导成支持的.p12格式
server/server.p12
changeit
生成client证书
client/client-key.pem
client/client-req.csr
就是登入中心的用户(本来用户名应该是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
client/client-cert.pem
将证书导成浏览器支持的.p12格式
client/client.p12
根据CA证书生成JKS文件
\Java\jdk1.5.0_09\bin
>
keytool
-keystore
\openssl\bin\jks\truststore.jks
-keypass
222222
-storepass
-alias
ca
-import
-trustcacerts
-file
\openssl\bin\ca\ca-cert.pem
配置tomcatssl
修改conf/server.xml,keystorefile,
truststorefile设置为正确的相关路径
xml
代码
:
<
Connectorport="
8443"
protocol="
org.apache.coyote.http11.Http11Protocol"
maxThreads="
150"
SSLEnabled="
true"
scheme="
https"
secure="
clientAuth="
false"
sslProtocol="
TLS"
keystoreFile="
\OpenSSL\bin\server\server.p12"
keystorePass="
"
keystoreType="
PKCS12"
truststoreFile="
\OpenSSL\bin\jks\truststore.jks"
truststorePass="
222222"
truststoreType="
JKS"
/>
验证ssl配置
启动tomcat,在浏览器中访问https:
//ip:
8443,如果配置正确的话在第三方签发的证书地址栏会变绿,自制的证书会拦截(打死都要进去),会提示你不安全字样。
图1
Okhttp端调整
第三方签发证书
第三方签发证书直接使用https:
//...访问即可。
newRequest.Builder().url(url).build();
自制证书
将okhttp设置成信任所有证书
java代码:
OkHttpClient.Builderbuilder=newOkHttpClient.Builder();
builder.hostnameVerifier(newTrustAllHostnameVerifier())
.sslSocketFactory(createSSLSocketFactory(),newTrustAllManager());
//安全套接层工厂,HTTPS相关,用于创建SSLSocket
privatestaticSSLSocketFactorycreateSSLSocketFactory(){
SSLSocketFactorysSLSocketFactory=null;
try{
SSLContextsc=SSLContext.getInstance("
);
sc.init(null,newTrustManager[]{newTrustAllManager()},
newSecureRandom());
sSLSocketFactory=sc.getSocketFactory();
}catch(Exceptione){
}
returnsSLSocketFactory;
privatestaticclassTrustAllManagerimplementsX509TrustManager{
@Override
publicvoidcheckClientTrusted(X509Certificate[]chain,StringauthType)
throwsCertificateException{
publicvoidcheckServerTrusted(X509Certificate[]chain,StringauthType)
publicX509Certificate[]getAcceptedIssuers(){
returnnewX509Certificate[0];
privatestaticclassTrustAllHostnameVerifierimplementsHostnameVerifier{
@Override
publicbooleanverify(StringparamString,SSLSessionparamSSLSession){
returntrue;
}
1.1.1访问
newRequest.Builder().url(“https:
//....”).build();
访问成功。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- https 自制 证书 详解 okhttp3 访问 连接