首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Apache Ace和管理代理之间启用SSL身份验证

在Apache Ace和管理代理之间启用SSL身份验证
EN

Stack Overflow用户
提问于 2012-06-06 11:40:35
回答 1查看 748关注 0票数 3

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

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

代码语言:javascript
复制
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。

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

代码语言:javascript
复制
keytool -import -alias truststore -keystore truststore -file new_ca.pem

Step#3)为管理代理创建了证书,该证书在名为keystore-ma.jks的Java密钥库文件中可用。

代码语言:javascript
复制
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

Step#4)创建了企业服务责任:

代码语言:javascript
复制
keytool -certreq -alias keystore-ma -file keystore-ma_csr.pem -keypass secret -keystore keystore-ma.jks -storepass secret

Step#5)使用在步骤1中创建的证书颁发机构对证书进行签名。

代码语言:javascript
复制
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文件中导入了证书

代码语言:javascript
复制
keytool -import -alias keystore-ma -keystore keystore-ma -file keystore-ma.pem

遵循类似的步骤(3-6)来创建证书或ACE服务器并对其进行签名,该证书或ACE服务器位于名为keystore-server的Java密钥库文件中。

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

代码语言:javascript
复制
-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:

代码语言:javascript
复制
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更改为

代码语言:javascript
复制
 1) https://<Ace Server Ip>:8080
 2) http://<Ace Server Ip>:8080
 3) https://<Ace Server Ip>:8443

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

EN

回答 1

Stack Overflow用户

发布于 2012-06-28 20:52:04

我看到您使用了一个可分辨名称(DN),而不仅仅是一个通用名称。

按照惯例,证书验证将使用主机名作为公用名。如果您使用CN=hostname-of-target创建证书(IP地址不够用),它应该可以工作。

我可以给你的另一个提示是解决SSL错误:对服务器使用-Djavax.net.debug=ssl,它会输出很多信息,但会给出详细的信息,说明发生了什么以及导致错误的原因。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10907880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档