自建CA证书,使用docker部署java程序支持https双向认证

1、证书准备

1.1 自建证书

win下创建CA证书,请查阅win系统下基于springboot实现https的双向认证的相关内容噢。
Linux下创建CA证书,请查阅Linux系统下基于springboot实现https的双向认证的相关内容噢。

1.2 相关文件

图1

2、docker部署

2.1 环境准备
服务器信息如下:
操作系统ip说明
Centos 7192.168.0.202作为服务端

浏览器采用chrome。

2.2 操作步骤
2.2.1 Dockerfile文件
1、将【sslTestClient.cer】、【sslTestServer.cer】文件上传至服务器某目录下

图2

2、创建Dockerfile文件
FROM java:8
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
VOLUME /tmp
COPY ./sslTestClient.cer /tmp/
COPY ./sslTestServer.cer /tmp/
RUN \
    cd $JAVA_HOME/jre/lib/security \
    && sh -c '/bin/echo -e "y" | keytool -import -alias sslTestClient -file /tmp/sslTestClient.cer -keystore $JAVA_HOME/jre/lib/security/cacerts --storepass changeit -v'
RUN \
    cd $JAVA_HOME/jre/lib/security \
    && sh -c '/bin/echo -e "y" | keytool -import -alias sslTestServer -file /tmp/sslTestServer.cer -keystore $JAVA_HOME/jre/lib/security/cacerts --storepass changeit -v'
ADD STSONG.TTF /usr/share/fonts/STSONG.TTF
ADD test-1.0.0.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8000
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
部分命令解释:
  //  将服务器路径下的【*.cer】文件copy至docker容器内部
  COPY ./sslTestClient.cer /tmp/
 
  // 将客户端/服务端公钥导入的服务端/客户端jdk信任库
  RUN \
    cd $JAVA_HOME/jre/lib/security \
    && sh -c '/bin/echo -e "y" | keytool -import -alias sslTestClient -file /tmp/sslTestClient.cer -keystore $JAVA_HOME/jre/lib/security/cacerts --storepass changeit -v'

    // 相当于输入y命令:是否信任此证书,输入y 
    sh -c '/bin/echo -e "y"

  // 相当于输入密码,默认密码:changeit
    --storepass changeit
2.2.2 build
docker build -t test/ca:1.0 .

3、测试

3.1 浏览器输入url:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SndgOya8-1615342585043)(https://upload-images.jianshu.io/upload_images/9406107-c9ffa52c1924e628.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

3.2 Postman测试
3.2.1 未添加证书时请求:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hEHLMtrX-1615342585045)(https://upload-images.jianshu.io/upload_images/9406107-cec787064cd29377.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

3.2.2 添加证书后请求:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GRc83Z7x-1615342585047)(https://upload-images.jianshu.io/upload_images/9406107-976c9ed5c6a3feac.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

图6

使用postman添加客户端证书后,可正常访问数据:
在这里插入图片描述

至此,使用docker部署java程序支持https双向认证实现完毕。
java代码实现https请求,请参考自建CA证书,java实现通过OkHttpClient发送https(验证ca证书)请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值