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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值