首页 > 编程语言 >java8发送邮件失败, 修改jdk镜像中的java.security文件

java8发送邮件失败, 修改jdk镜像中的java.security文件

时间:2023-07-03 15:00:10浏览次数:133  
标签:docker java jdk temp openjdk security java8

背景

原本部署环境中的java:8镜像在检查问题删除, 用docker pull openjdk:8重新拉取并改名java:8, 在重新部署后, 发送邮件报错: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)!!!

原因

  1. 根本原因是jdk1.8版本SSL调用权限上有问题
    参考Java调用ssl异常,javax.net.ssl.SSLHandshakeException: No appropriate protocol
  2. 原本的java:8镜像是已经修复该问题的, 但被重置了

解决办法

修改jdk镜像中的java.security文件

  1. 重新拉取镜像openjdk:8
docker pull openjdk:8
  1. 创建临时容器temp-java8(temp-java8为容器名, 可自定义), 查找java.security位置
docker run -it --name temp-java8 openjdk:8 /bin/bash
find / -name "java.security"
exit

3.将文件复制出来修改, 再复制回去

docker cp temp-java8:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security /home/java.security
vi java.security
docker cp /home/java.security temp-java8:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security

4.用已有容器构建新的镜像

docker commit temp-java8 java:8

方法优缺点

优点

  1. 可以直接拿来即用

缺点

  1. 后续维护的人不清楚有什么改动

替换方法

直接修改Dockerfile, java.security需要放到Dockerfile同级目录

COPY java.security /usr/local/openjdk-8/jre/lib/security/java.security

优点

  1. 后续维护的人清楚有什么改动

缺点

  1. 迁移时需要移动相应的文件

标签:docker,java,jdk,temp,openjdk,security,java8
From: https://www.cnblogs.com/mjs-mark/p/17522602.html

相关文章

  • Java线程池基础介绍
    一、线程池的优点1、线程池能够复用已经创建了的线程来执行任务,从而降低了频繁创建和销毁线程所带来的资源消耗;2、任务创建完成时,不必等待线程的创建,能够立即执行,提高了任务响应的速度。 二、创建线程池的七大核心参数1、corePoorSize核心线程数线......
  • JavaScript 中 object 的几个方法:entries,values,keys 对比
    在JavaScript中,对象(Object)是一种无序的键值对集合。以下是entries,values和keys这三个对象方法的比较: entries()方法:返回一个包含对象的键值对的数组。每个键值对都是一个数组,包含两个元素,第一个元素是键名,第二个元素是对应的值。1constobj={a:1,b:2,c:3};2conso......
  • JAVA获取字符串内的括号对(支持多层级);获取括号对的内容;按指定规则返回括号对位置;
    先看结果:处理字符串 "这个是一条测试用的字符串[(5(4(3[(1)(2)]))(7))][(6)]"结果  解决思路:参考正则表达式里面出入站部分 代码实现如下:方法调用“: Stringtest="这个是一条测试用的字符串[(5(4(3[(1)(2)]))(7))][(6)]";LinkedHashMap<Inte......
  • 41. Spring Boot 使用Java代码创建Bean并注册到Spring中【从零开始学Spring Boot】
    已经好久没有讲一些基础的知识了,这一小节来点简单的,这也是为下节的在Spring多数Boot中使用多数据源做准备。从Spring3.0开始,增加了一种新的途径来配置BeanDefinition,这就是通过JavaCode配置BeanDefinition。      与XML和Annotation两种配置方式不同点在于:      ......
  • 郑州Java面试题
    常见题库https://github.com/cosen1024/Java-Interviewhttps://github.com/whx123/JavaHomehttps://github.com/lvminghui/Java-Noteshttps://github.com/cosen1024/Java-Interview==和equals区别==基本类型比较的是值,对象类型比较的是地址,equals默认情况下也是比较地址......
  • JAVA生成xml文件格式
    publicboolean A(参数1,……){Documentdocument=DocumentHelper.createDocument();Namespacena=Namespace.get("");Strings=null;na=new Namespace(xxxxxxxxxxxxxxxxxxxxx);//命名空间Elementroot=document.addElement(newQName(“A......
  • java 相对路径问题 和绝对路径
    小例:java代码:都可以成功Filefile=newFile("./xml/a.properties");Filefile=newFile("xml/a.properties");下面就会出错Filefile=newFile("/xml/a.properties"); 总结:.为当前目录,即工程名所在文件夹  下面的当前路径都是你的工程目录Filefile=newFile("./......
  • 关于Java RDP协议实现远程桌面连接的开源项目properjavardp
    最近想学一下在Android平台上实现RDP协议远程连接PC,于是在网上找这方面的资料,发现了一个开源的JavaRDP项目,很不错,拿出来和大家分享一下。关于properjavardp的一些说明,可以到这里看看:http://properjavardp.sourceforge.net/ 。1、首先到http://sourceforge.net/projects/properjav......
  • JavaCV的摄像头实战之十三:年龄检测
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本文是《JavaCV的摄像头实战》系列的第十三篇,前文《JavaCV的摄像头实战之十二:性别检测》中,借助训练好的卷积神经网络模型开发出了识别性别的应用,今天在前文基础......
  • HTML+CSS+JavaScript基础
    1、HTML(HypertextMarkupLanguage,超文本标记语言),用来向浏览器说明内容的结构、2、DOM(DocumentObjectModel,文档对象模型)指的是HTML标签的层次结构。每一对HTML标签(有的时候是一个标签)都是一个元素。3、CSS(CascadingStyleSheets,层叠样式表),控制DOM元素的视觉外观......