2012-06-06 4 views
3

Apache Ace와 관리 에이전트간에 양방향 SSL 인증을 사용하려고합니다 (http://ace.apache.org/dev-doc/design/using-client-certificates.html 문서를 따라). 이를 위해, 우선은 내가 아래에 언급 된 단계에 따라 필요한 인증서를 생성 :Apache Ace와 관리 에이전트 간의 SSL 인증 사용

1 단계) 아래 명령 excecuting에 의해 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), 다음 명령을 자바 키 저장소 파일에서 사용할 수있는 관리 에이전트에 대한

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

3 단계) 등재 인증서를 사용하여 파일 이름 신뢰를 키 저장소 인증서 new_ca.pem을 수입 스토어라는 -ma.jks.

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 

단계 번호가 6) 수입 단계에서 생성 된 인증 기관을 사용하여 인증서를 서명 키 스토어 파일 kestore-ma의 증명서

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

keystore-server라고하는 Java 키 스토어 파일에서 사용할 수있는 cetificate 또는 ACE 서버를 작성하고 서명하려면 비슷한 단계 (3-6)를 수행하십시오.

그럼 내가 추가 속성을 포함하는 에이스 서버의 Platform.properties을 업데이트 에이스 서버 시작 : 다음 명령을

-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 

시작 에이스 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 

타겟이 에이스 서버에 등록되지 않았습니다. 올바른 URL을 사용하여 HTTPS를 통해 에이스 서버에 연결하고 있습니까? 내 Ace Server가 관리 에이전트에서 HTTPS 트래픽을 허용하도록 구성되어 있는지 확인하는 방법은 무엇입니까?

+0

이 문제가 해결 되었습니까? 그렇다면 아래 답변을 수락하십시오. 그렇지 않다면 더 자세히 설명 할 수 있습니까? – jawi

답변

1

나는 공통 이름 이상으로 고유 이름 (DN)을 사용하는 것을 본다.
규칙에 따라 일반 이름으로 호스트 이름이 인증서 유효성 검사에 사용됩니다. CN=hostname-of-target (IP 주소가 충분하지 않음)으로 인증서를 만드는 경우 작동합니다.

또 다른 힌트를 통해 SSL 오류 문제를 해결할 수 있습니다. 서버에 -Djavax.net.debug=ssl을 사용하면 많은 정보가 누출되지만, 진행 상황과 오류의 원인에 대한 자세한 정보를 제공합니다.