Apache TomEE(和Tomcat)的自签名证书

可能在大多数Java EE项目中,您将拥有具有SSL支持( https )的部分或整个系统,因此浏览器和服务器可以通过安全连接进行通信。 这意味着在处理数据之前,已发送的数据已加密,传输并最终解密。 数字证书

问题在于,有时官方的“密钥库”仅可用于生产环境,而不能在开发/测试机器中使用。 然后,一个可能的步骤是由团队的一个成员创建一个非官方的“密钥库” ,并将其共享给所有成员,以便每个人都可以使用https在本地进行测试,并且对于测试/ QA环境也是如此。

但是使用这种方法会遇到一个问题,那就是,当您要运行该应用程序时,您会收到一条警告/错误消息,表明证书不受信任。 您可以忍受这一点,但是我们可以做得更好,并通过创建自签名SSL证书来避免这种情况。

在本文中,我们将了解如何使用自签名证书在Apache TomEE (和Tomcat )中创建和启用SSL

首先要做的是安装openssl。 此步骤将取决于您的操作系统。 就我而言,我使用Ubuntu 14.04运行。

然后,我们需要使用Triple-DES算法生成1024位RSA私钥并以PEM格式存储。 我将使用{userhome} / certs目录生成所有必需的资源,但是可以毫无问题地对其进行更改。

生成私钥

openssl genrsa -des3 -out server.key 1024

在这里,我们必须引入一个密码,在这个示例中,我将使用apachetomee (请在生产中不要这样做)。

产生企业社会责任

下一步是生成CSR (证书签名请求)。 理想情况下,将生成此文件并将其发送给Thawte或Verisign等证书颁发机构,后者将验证身份。 但是在本例中,我们将使用先前的私钥对CSR进行自签名。

openssl req -new -key server.key -out server.csr

提示之一是“公用名(例如,服务器FQDN或您的姓名)”。 重要的是,要使用SSL保护的服务器的标准域名必须填写此字段。 对于开发机,您可以设置“ localhost”。

现在已经有了私钥和csr,我们可以通过运行以下命令来生成有效期为一年的X.509自签名证书:

生成自签名证书

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

要在Apache TomEE (和Tomcat)中安装证书,我们需要使用密钥库。 该密钥库是使用keytool命令生成的。 要使用此工具,证书应为PKCS12证书。 因此,我们将使用openssl通过运行以下命令将证书转换为PKCS12格式:

准备Apache TomEE

openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name test_server -caname root_ca

我们差不多完成了,现在我们只需要创建密钥库。 与所有其他资源一样,我已使用相同的密码来保护密钥库,这是
阿帕切米

keytool -importkeystore -destkeystore keystore.jks -srckeystore server.p12 -srcstoretype PKCS12 -srcalias test_server -destalias test_server

现在,我们在{userhome} / certs中创建了一个keystore.jks文件。

将密钥库安装到Apache TomEE中

在http://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html中描述了将密钥库安装到Apache TomEE (和Tomcat)中的过程。 但总而言之,唯一要做的是打开$ {TOMEE_HOME} /config/server.xml并定义SSL连接器。

<Service name="Catalina"><Connector port="8443" protocol="HTTP/1.1"maxThreads="150" SSLEnabled="true" scheme="https" secure="true"keystoreFile="${user.home}/certs/keystore.jks" keystorePass="apachetomee"clientAuth="false" sslProtocol="TLS" />
</Service>

请注意,在我的案例中,您需要设置密钥库位置{userhome} /certs/keystore.jks以及用于打开名为apachetomee的密钥库的密码。

准备浏览器

在启动服务器之前,我们需要在浏览器中将server.crt添加为有效的Authorities。

在Firefox中: Firefox首选项->高级->查看证书->权限(选项卡),然后导入server.crt文件。

在Chrome中:设置-> HTTPS / SSL->管理证书…->权限(标签),然后导入server.crt文件。

现在,您可以启动Apache TomEE (或Tomcat)了,可以使用https和端口8443导航到任何已部署的应用程序。

就是这样,现在我们可以运行测试(使用Selenium ),而不必担心不受信任的证书警告。

翻译自: https://www.javacodegeeks.com/2015/01/self-signed-certificate-for-apache-tomee-and-tomcat.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WEB效能测试和负载测试部分截图

效能测试&#xff1a; 负载测试&#xff1a; 转载于:https://www.cnblogs.com/DOOM-scse/archive/2013/01/07/2849110.html

Java8 Lambdas:解释性能缺陷的排序

与Peter Lawrey合作撰写 。 几天前&#xff0c;我对使用新的Java8声明式的排序性能提出了严重的问题。 在这里查看博客文章。 在那篇文章中&#xff0c;我仅指出了问题所在&#xff0c;但在这篇文章中&#xff0c;我将更深入地了解和解释问题的原因。 这将通过使用声明式样式重…

jquery子元素选择器

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><title>子元素选择器</title>…

Asp.net MVC3.0 基于不同的角色显示不同的菜单

前面提到过用Asp.net MVC3.0正在做一个问答系统性质的论坛。前期把菜单全部显示以方便测试模块功能。现在正在完善&#xff0c;加上角色模块&#xff0c;然后不同的角色登陆系统会看到不同的菜单栏&#xff0c;还有就是游客&#xff08;未登录用户&#xff09;看到的菜单栏。网…

Apache Mesos:编写您自己的分布式框架

在上一篇文章中 &#xff0c;我们了解了mesos是什么&#xff0c;它如何有用&#xff0c;并开始使用它。 在本文中&#xff0c;我们将看到如何在mesos上编写自己的框架。 &#xff08;在mesos中&#xff0c;框架是在其上运行的任何应用程序。&#xff09;本文介绍了一个名为“ m…

jquery可见性选择器(综合)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><title>可见性选择器</title>…

LoadRunner如何监控Linux下的系统资源

前一段时间在研究LoadRunner过程中&#xff0c;在进行压力场景测试中通过LoadRunner来实时监控windows的系统资源&#xff0c;在前几节中我已经总结了相关过程&#xff0c;近段时间发现群里有朋友问如何监控Linux下的系统资源&#xff0c;所以我也就此问题搭建了一些的Linux环境…

页面跳转多种方法(加传参)

onclick"javascript:location.href/HelpCenter/HelpCenter/" <a href"/HelpCenter/HelpCenter">帮助中心</a>点击页面返回上一页&#xff1a; onclick"javascript:window.history.go(-1); *********************************************…

log4j的使用

文章出处&#xff1a;http://www.blogjava.net/zJun/archive/2006/06/28/55511.html 首先&#xff0c;要在项目classpath下建立log4j.properties 1. 配置文件 #配置根Logger log4j.rootLogger [level], appenderName1, appenderName2, …#配置日志信息输出目的地Appender log4…

使用@Rule在JUnit中测试文件和目录

多亏了TemporaryFolder Rule在JUnit中使用文件和目录进行测试很容易。 在JUnit中&#xff0c;规则&#xff08; Rule &#xff09;可以替代或设置夹具设置和清除方法&#xff08; org.junit.Before &#xff0c; org.junit.After &#xff0c; org.junit.BeforeClass和org.jun…

jquery简单原则器(匹配索引为指定值的元素)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><title>简单选择器</title>&l…

POJ-1664 放苹果 动态规划思想解组合数学

该题说明了状态开设的意义一样,但是从哪个方向去理解推倒状态的转移对解题非常关键.该题扣住是否所有的盘子中有空盘子,就得到了一个非常简单且优美的方程.如果从当前盘子的放置状态或者是当前苹果的放置状态来求解状态转移方程就不能写出来.这和题意中的相同盘子,相同苹果有很…

JCG学院开设了Java设计模式课程!

自从我们推出JCG学院以来&#xff0c;已经有一段时间了。JCG学院是一个基于付费内容的高级订阅网站&#xff0c;提供有关最新技术的课程&#xff0c;涵盖从RedSQL数据库&#xff08;如Redis和CouchDB&#xff09;到使用Android进行移动开发的最新知识。 当然&#xff0c;与Jav…

用友异常清理工具

此类工具网上很多&#xff0c;但&#xff0c;网上的病毒千千万万&#xff0c;还是自己开发使用较为放心。而且具体执行了什么也一清二楚&#xff0c;可以放心。 此工具适用大部份版本&#xff0c;从U821至U871&#xff0c;包括U6系列。 转载于:https://www.cnblogs.com/wuxi15/…

JVM因“ OutOfMemory”错误而关闭-我该怎么办?

看起来似乎很神奇&#xff0c;但是在有关JVM设置的搜索请求结果中经常显示这种“从深度”的呼喊。 您可能会遇到“我记得该选项&#xff0c;但如何启用它”的问题&#xff0c;而有时&#xff08;主要是半年一次&#xff09;管理服务器或调整虚拟设备&#xff0c;而又除主要任务…

jquery层级原则器(匹配后代元素div)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><title>层级 </title><met…

输入焦点默认指示在编辑框上

mfc 对话框(模态)中有一编辑框控件 如何在显示对话框时 将输入焦点默认指示在编辑框上呢&#xff1f; 2011-05-11 11:40 提问者&#xff1a; 绝岭雄风 我来帮他解答 满意回答2011-05-11 11:42对话框上按ctrlD 出来后先点那个编辑框控件 使得那个空间的排序为1号即可 追问太感谢…

JBoss Data Virtualization 6.1 Beta现在可用

JBoss 数据虚拟化 &#xff08;JDV&#xff09;是一种数据集成解决方案&#xff0c;位于多个数据源的前面&#xff0c;并允许将它们视为一个源。 做到这一点&#xff0c;它提供了数据抽象&#xff0c;联合&#xff0c;集成&#xff0c;转换和交付功能&#xff0c;可将来自一个或…

hibernater面试一

什么是Hibernate的并发机制&#xff1f;怎么去处理并发问题&#xff1f; Hibernate并发机制&#xff1a; a、Hibernate的Session对象是非线程安全的,对于单个请求,单个会话,单个的工作单元(即单个事务,单个线程),它通常只使用一次, 然后就丢弃。 如果一个Session 实例允许共享的…

使用Spring Boot和MongoDB创建REST API

Spring Boot是一个自以为是的框架&#xff0c;可简化Spring应用程序的开发。 它使我们摆脱了复杂配置文件的束缚&#xff0c;并帮助我们创建了不需要外部servlet容器的独立Spring应用程序。 这听起来实在令人难以置信&#xff0c;但Spring Boot确实可以完成所有这一切 。 这篇…