tomcat与tomee_Apache TomEE(和Tomcat)的自签名证书

tomcat与tomee

可能在大多数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添加为有效的Authority。

在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

tomcat与tomee

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

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

相关文章

linux环境变量管理器,运维 - linux(ubuntu) 环境变量管理 (持续更新)

运维 - linux(ubuntu) 环境变量管理 (持续更新)注: 本教程以 Ubuntu16.04 操作, 请细看. 如果看完还不明白, 联系我, 我给你发红包.一, 查看环境变量:方法 1: 直接用 $PATH 命令:wafaubuntu:~$ $PATHbash:/home/king/bin:/home/king/.local/bin:/usr/local/sbin:/usr/local/bin…

C 线程的使用~(上)

C 11 之前&#xff0c;C 语言没有对并发编程提供语言级别的支持&#xff0c;这使得我们在编写可移植的并发程序时&#xff0c;存在诸多的不便。现在 C 11 中增加了线程以及线程相关的类&#xff0c;很方便地支持了并发编程&#xff0c;使得编写的多线程程序的可移植性得到了很大…

k8s中graphite_在Graphite中存储Hystrix的几个月历史指标

k8s中graphiteHystrix的杀手级功能之一是低延迟&#xff0c;数据密集和美观的仪表板 &#xff1a; 即使这只是Hystrix实际操作的副作用&#xff08;断路器&#xff0c;线程池&#xff0c;超时等&#xff09;&#xff0c;它也往往是最令人印象深刻的功能。 为了使其工作&#…

linux下gate版本管理,Linux安装使用GoldenGate

如何安装使用goldengate一.环境:OS&#xff1a;linux CentOS_Final_5.5(64bit)DB&#xff1a;oracle11gR2(单机模式)goldengate: ggs_Linux_x64_ora11g_64bit_v11_1_1_0_0_078.tar网络&#xff1a;局域网&#xff0c;源端IP 192.168.128.100 镜像端IP 192.168.128.101二&…

C语言中的“三字母词”坑了工程师

某软件工程师接盘了前同事的项目&#xff0c;进度一拖再拖&#xff0c;最后发现问题出现在如下代码&#xff1a;// 注释语句 ??/2a b c;请注意代码中的“??/”&#xff0c;就是这注释隐藏的很深&#xff0c;让项目一拖再拖。"??/"会被编译器当作 /&#xff0c…

guice 实例_使用Google Guice消除实例之间的歧义

guice 实例如果接口有多个实现&#xff0c;则Google guice提供了一种精巧的方法来选择目标实现。 我的示例基于Josh Long &#xff08; starbuxman &#xff09;的出色文章&#xff0c;内容涉及Spring提供的类似机制。 因此&#xff0c;请考虑一个名为MarketPlace的接口&#…

linux uboot 源码分析,UBoot源码分析1.pdf

UBoot源码分析1• UBoot源码解析(一)主要内容• 分析UBoot是如何引导Linux内核• UBoot源码的一阶段解析BootLoader概念• Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序&#xff0c;我们可以初始化硬件设备、建立内存空间的映射图&#xff0c;从而…

C 线程的使用~(下)

2.3 detach()detach() 函数的作用是进行线程分离&#xff0c;分离主线程和创建出的子线程。在线程分离之后&#xff0c;主线程退出也会一并销毁创建出的所有子线程&#xff0c;在主线程退出之前&#xff0c;它可以脱离主线程继续独立的运行&#xff0c;任务执行完毕之后&#x…

javafx有布局管理器吗_JavaFX技巧17:带有AnchorPane的动画工作台布局

javafx有布局管理器吗最近&#xff0c;我不得不为应用程序实现一个布局&#xff0c;其中可以根据用户是否登录来隐藏或显示菜单区和状态区&#xff0c;并通过滑入/滑出动画显示该区域。 以下视频显示了实际的布局&#xff1a; 过去&#xff0c;我可能会使用自定义控件和自定义…

linux双wan网关负载均衡,Csico2951路由器,如何做到双WAN口负载均衡?

Router2800(config-if)#ip addressY.Y.Y.Y 255.255.255.252(Y为移动地址)Router2800(config-if)#ip nat ouosideRouter2800(config-if)#no shutdownRouter (config)#ip dns serverRouter (config)#ip name-server A.A.A.A B.B.B.B(A为电信解析地址&#xff0c;B为移动解析地址)…

用c语言编写爱心的代码是什么

用c语言编写爱心的代码&#xff1a;输入完整代码如下&#xff1a;#include int main(void){float a,x,y;for(y1.5f; y>-1.5f; y-0.1f){for(x-1.5f; x<1.5f; x 0.05f){a x*x y*y-1;char ch a*a*a-x*x*y*y*y<0.0f?*: ; putchar(ch); }printf("\n");}retur…

c++ lambda 重载_您会后悔对Lambdas应用重载!

c lambda 重载编写好的API很难。 非常辛苦。 如果您希望用户喜欢您的API&#xff0c;则必须考虑很多事情。 您必须在以下两者之间找到适当的平衡&#xff1a; 用处 易用性 向后兼容 前向兼容性 之前&#xff0c;在我们的文章&#xff1a; 如何设计良好的常规API中&#xf…

linux1到10累加,10个有趣的 Linux 命令

在终端工作是一件很有趣的事情。今天&#xff0c;我们将会列举一些有趣得为你带来欢笑的Linux命令。1. rev创建一个文件&#xff0c;在文件里面输入几个单词&#xff0c;rev命令会将你写的东西反转输出到控制台。# revSelection_002Selection_0012. fortune这个命令没有被默认安…

7个华为关于C语言的经典面试题

1、找错void test1(){ char string[10]; char* str1"0123456789"; strcpy(string, str1);}这里string数组越界&#xff0c;因为字符串长度为10&#xff0c;还有一个结束符’\0’。所以总共有11个字符长度。string数组大小为10&#xff0c;这里越界了。PS&am…

java8 函数式编程_Java 8函数式编程:延迟实例化

java8 函数式编程单例通常会延迟实例化自己&#xff0c;有时&#xff0c;如果对象足够重&#xff0c;则可以延迟实例化类字段。 通常&#xff0c;在走惰性路线时&#xff0c;getter方法&#xff08;或accessor &#xff09;必须具有一段代码&#xff0c;该代码块在返回对象之前…

linux数组操作 增删改查,linuxea:go数组与数组增删改查(19)

复合数据类型是集合类&#xff0c;并且可以存储多个单值。在golang中存储的数组是相同的数据类型&#xff0c;并且长度也是其中的一个属性。在go中&#xff0c;数组的长度一旦定义&#xff0c;就不可变。如果声明了长度的变量&#xff0c;只能赋值相同的长度的数组数组是具有相…

C语言的特点与创建的基本步骤是什么

C语言的特点与创建的基本步骤是&#xff1a;C 语言特点&#xff1a;1.C语言是一种成功的系统描述语言&#xff0c;用C语言开发的UNIX操作系统就是一个成功的范例;2.同时C语言又是一种通用的程序设计语言&#xff0c;在国际上广泛流行。世界上很多著名的计算公司都成功的开发了不…

谷歌guava_Google Guava:您永远不会知道的5件事

谷歌guava每个开发人员可以使用哪些鲜为人知的Google Guava功能&#xff1f; 它是那里最受欢迎的库之一&#xff0c;它是开源的&#xff0c;您可能已经知道了&#xff0c;它来自人们玩Quidditch作为一项真正的运动的地方&#xff08;至少在The Internship上 &#xff09;。 它…

c语言中prime的作用,C语言判断素数prime

《C语言判断素数prime》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《C语言判断素数prime(2页珍藏版)》请在人人文库网上搜索。1、主函数&#xff1a;#include int prime();void main()int number;int flag;printf (请输入一个大于1的整数:);scanf (%d,&number)…

C语言strcmp函数用法

C语言strcmp函数用法strcmp函数语法为“int strcmp(char *str1,char *str2)”&#xff0c;其作用是比较字符串str1和str2是否相同&#xff0c;如果相同则返回0&#xff0c;如果不同&#xff0c;前者大于后者则返回1&#xff0c;否则返回-1。简单示例&#xff1a;char a[]"…