ssl - 如何在 websphere 应用程序服务器 liberty v. 8.5.5.0 中生成新的 SSL 证书

标签 ssl https websphere websphere-liberty

我只是在寻找一些信息。 我想启用 ssl 和 https 重定向(一些基本的安全性,以便我可以公开 appCenter 和应用程序进行测试):

Websphere application server liberty v. 8.5.5.0 
windows server 2008 R2
Java version 1.7.0_71 64bit

我做了什么: 安装好eclipse+mobilefirst studio 然后是 websphere 应用程序服务器 liberty v. 8.5.5.0 然后是 MobileFirst 平台服务器

我阅读了指南 here和安全实用程序 guide

这些指南非常有限,我是 WebSphere 的新手,我对如何删除现有证书并成功生成新的自签名有疑问

我只想看一个更完整的例子,一些相关的 posts这里引用配置 web.xml 但它不在文档中。

谁能给我指出一个更完整的示例,说明如何设置启用 ssl 和 https 重定向? 我的最终目标是使用 ssl 和 https 重定向访问 appCenter。

谢谢

最佳答案

我将尝试部分回答您的问题,因为它非常广泛。

启用 SSL

要在 Liberty 配置文件中启用 ssl,最简单的方法是在 Eclipse 中使用 WDT(WebSphere 开发人员工具)。在 Servers View 中,右键单击服务器并选择 Utilities > Create SSL Certificate。它将:

  • 生成自签名证书 - 您可以自定义有效期和主题名称
  • 存储在${server.output.dir}/resources/security/key.jks
  • Console View 中,它将输出您需要添加到 server.xml 的代码片段:
<featureManager>
   <feature>ssl-1.0</feature>
</featureManager>
<keyStore id="defaultKeyStore" password="{xor}encodedPassword=" />

您可以从 wlp\bin 调用 securityUtility 的命令行执行相同的操作命令:

securityUtility createSSLCertificate --server=myserver --password=mypassword --validity=365
                                     --subject=CN=mycompany,O=myOrg,C=myCountry

修改 server.xml 后,您的 Liberty 已在 9443 上启用 SSL:

https://localhost:9443/

自定义SSL证书

不幸的是,Liberty 本身并没有太多关于它的内容。所以这是您的选择:

  • 如上所述使用 securityUtility - 允许覆盖句点和 SN
  • 使用keytool JDK 自带的,它将允许更多的自定义(名称、 key 长度和算法),例如:
C:\Java\jdk1.7.0_67\bin>keytool -genkeypair -alias myCert -keystore keystore.jks
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  liberty
What is the name of your organizational unit?
  [Unknown]:  test
What is the name of your organization?
  [Unknown]:  gas
What is the name of your City or Locality?
  [Unknown]:
What is the name of your State or Province?
  [Unknown]:
What is the two-letter country code for this unit?
  [Unknown]:
Is CN=liberty, OU=test, O=gas, L=Unknown, ST=Unknown, C=Unknown correct?
  [no]:  yes

Enter key password for <mykey>
        (RETURN if same as keystore password):
Re-enter new password:
  • 第三方工具,例如,如果您拥有完整的 WAS,则可以使用 ikeyman使用向导生成证书。

无论您将使用什么方法来创建新的 keystore 和自签名证书,请更新 server.xml 中的 keyStore 定义

重定向到 SSL

默认情况下,任何未配置的应用程序都可以通过 http 和 https 使用。
如果您想强制应用程序使用 SSL,您需要为该应用程序创建/修改 web.xml 文件。将以下内容添加到您的 web.xml:

<security-constraint>
    <display-name>allApp</display-name>
    <web-resource-collection>
        <web-resource-name>allresources</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

并且您必须启用应用程序安全性,将以下内容添加到 server.xml:

<featureManager>
    <feature>appSecurity-2.0</feature>
</featureManager>

你已经完成了。您已为您的服务器启用 SSL 并为给定应用启用重定向。

关于ssl - 如何在 websphere 应用程序服务器 liberty v. 8.5.5.0 中生成新的 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27428931/

相关文章:

silverlight - 从 Silverlight 4 调用 https WCF 服务仅适用于 fiddler 和 VS2010

Nginx - 添加 server_name 后,所有 url 都显示 404

基于 python 的 https 服务器在提供响应后关闭连接

websphere - 在哪里可以查看WebSphere环境变量?

websphere - 如何将安全角色映射到 websphere liberty 配置文件中的 ldap 组

ssl - 从 PHP 5.5 升级到 7.1.4 后 PHPMailer 失败

ssl - WSO2 身份服务器示例 Travelocity OpenID 对等方未通过身份验证

android - 可以与 Android 应用共享我的服务器证书吗?

c# - IrcDotNet 连接错误身份验证失败,因为远程方在使用 SSL 时关闭了传输流

multithreading - Servlet 线程池 vs Servlet 实例池 - 通过 Web 容器