【问题标题】:Enable SSL authentication between Apache Ace and Management agent在 Apache Ace 和管理代理之间启用 SSL 身份验证
【发布时间】:2012-06-10 02:16:36
【问题描述】:

我正在尝试在 Apache Ace 和管理代理之间启用两种方式的 ssl 身份验证(通过遵循文档 http://ace.apache.org/dev-doc/design/using-client-certificates.html)。为此,首先我按照以下步骤创建了所需的证书:

步骤#1) 通过执行以下命令,使用 OpenSSL 创建一个自签名证书颁发机构:

openssl req -x509 -new -config Certi/X509CA/openssl.cnf -days 365 -out Certi/X509CA/ca/new_ca.pem -keyout Certi/X509CA/ca/new_ca_pk.pem

此命令创建了证书 new_ca.pem 及其私钥 new_ca_pk.pem。

步骤#2) 使用以下命令将证书 new_ca.pem 导入名为 truststore 的密钥库文件

keytool -import -alias truststore -keystore truststore -file new_ca.pem

步骤#3) 为管理代理创建证书,在名为 keystore-ma.jks 的 Java 密钥库文件中提供。

keytool -genkey -dname "CN=<hostIP>, OU=IT, O=<Organization Name>, ST=UP, C=IN" -validity 365 -alias keystore-ma -keypass secret -keystore keystore-ma.jks -storepass secret

步骤#4) 创建 CSR:

keytool -certreq -alias keystore-ma -file keystore-ma_csr.pem -keypass secret -keystore keystore-ma.jks -storepass secret

步骤#5) 使用在步骤 1 中创建的证书颁发机构签署证书。

openssl ca -config X509CA/openssl.cnf -days 365 -cert C:/X509CA/ca/new_ca.pem -keyfile C:/X509CA/ca/new_ca_pk.pem -in C:/X509CA/ca/keystore-ma_csr.pem -out C:/X509CA/ca/keystore-ma.pem

Step#6) 将证书导入到名为 keystore-ma 的 kestore 文件中

keytool -import -alias keystore-ma -keystore keystore-ma -file keystore-ma.pem

按照类似的步骤 (3-6) 创建和签署证书或 ACE 服务器,可在名为 keystore-server 的 Java 密钥库文件中找到。

然后我更新了 Ace Server 的 Platform.properties 以包含其他属性并启动 Ace Server:

-Dorg.osgi.service.http.port.secure=8443
-Dorg.apache.felix.https.enable=true
-Dorg.apache.felix.https.truststore=/path/to/truststore
-Dorg.apache.felix.https.truststore.password=secret
-Dorg.apache.felix.https.keystore=/path/to/keystore-server
-Dorg.apache.felix.https.keystore.password=secret
-Dorg.apache.felix.https.clientcertificate=needs

使用以下命令启动 ace-launcher.jar:

java -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=secret -Djavax.net.ssl.keyStore=/path/to/keystore-ma -Djavax.net.ssl.keyStorePassword=secret -jar org.apache.ace.launcher-0.8.1-SNAPSHOT.jar  discovery=https://<Ace Server Ip>:8443 identification=MyTarget

我多次尝试将发现 url 更改为

 1) https://<Ace Server Ip>:8080
 2) http://<Ace Server Ip>:8080
 3) https://<Ace Server Ip>:8443

但目标未在 Ace 服务器中注册。我是否使用正确的 URL 通过 HTTPS 连接到 Ace 服务器? 另外如何确认我的 Ace 服务器是否配置为接受来自管理代理的 HTTPS 流量?

【问题讨论】:

  • 这个问题解决了吗?如果是这样,你能接受下面的答案吗?如果没有,您能进一步描述一下吗?

标签: apache openssl ssl-certificate apache-ace


【解决方案1】:

我看到您使用的专有名称 (DN) 不仅仅是通用名称。
按照惯例,作为公用名的主机名用于证书验证。如果您使用CN=hostname-of-target 创建证书(IP 地址不足),它应该可以工作。

我可以给你的另一个提示来解决 SSL 错误:对服务器使用 -Djavax.net.debug=ssl,它会吐出大量信息,但会提供关于发生了什么以及导致错误的原因的详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 2010-10-17
    • 2019-01-28
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多