ActiveMQ SSL 응용의 5 Spring + ActiveMQ SSL 연결 열기

1. 주요 내용 의 실제 프로젝트 는 Spring 프레임 워 크 에 자주 사 용 됩 니 다. 본 편 은 Spring 프레임 워 크 배경 에서 SSL 연결 ActiveMQ 를 어떻게 여 는 지 소개 합 니 다.
2. 준비 작업 1, client. ks, client. ts 파일 이 생 성 되 었 습 니 다.2. 프로젝트 에 있 는 spring + activemq 는 정상적으로 사용 할 수 있 고 사용 하 는 Connection Factory 는 ActiveMQ Connection Factory 입 니 다.3. ActiveMQ 엔 드 SSL 이 정상적으로 오픈 되 었 습 니 다.이 준비 작업 의 상세 한 조작 은 위의 내용 을 볼 수 있다.
2. 작업 절차 목적: ActiveMQConnectionFactory 를 ActiveMQSslConnectionFactory 로 교체 하고 해당 하 는 설정 매개 변 수 를 더 하면 Spring 의 관련 설정 파일 만 변경 하면 됩 니 다.1. client. ks, client. ts 를 프로젝트 프로젝트 프로젝트 디 렉 터 리 에 복사 하고 Spring - activeMQ 의 프로필 과 같은 디 렉 터 리 에 두 는 것 을 권장 합 니 다.2. application. xml 파일 을 수정 하고 ConnectionFactory 는 org. apache. activemq. activeMQSslConnectionFactory 로 변경 하 는 동시에 매개 변 수 는 brokerURL, keystore, trustStore, keystore Password, trustStorePassword 로 증가 합 니 다. 하나 도 없어 서 는 안 됩 니 다. 상기 5 개의 매개 변 수 는 해당 하 는 속성 값 을 설정 합 니 다 (두 파일 의 방문 경 로 를 주의 하 십시오).원래 설정 정보:
<bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
    destroy-method="stop">
    <property name="connectionFactory">
        <bean class="org.apache.activemq.ActiveMQConnectionFactory">
            
            <property name="brokerURL" value="tcp://127.0.0.1:61616?wireFormat.maxInactivityDurationInitalDelay=30000" />
        bean>
    property>
    <property name="maxConnections" value="100">property>
bean>

수정 후 설정 정보:

<bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
    destroy-method="stop">
    <property name="connectionFactory">
        <bean class="org.apache.activemq.ActiveMQSslConnectionFactory">
            
            <property name="brokerURL" value="ssl://127.0.0.1:61617?wireFormat.maxInactivityDurationInitalDelay=30000" />
            <property name="keyStore" value="client1.ks " />
            <property name="trustStore" value="client1.ts" />
            <property name="keyStorePassword" value="asdfgh" />
            <property name="trustStorePassword" value="qwerty" />
        bean>
    property>
    <property name="maxConnections" value="100">property>
bean>

3. 시작 매개 변수 VM arguments 에:
-Djavax.net.ssl.KeyStore="E:/ssl/client1.ks" -Djavax.net.ssl.KeyStorePassword="asdfgh"  -Djavax.net.ssl.trustStore="E:/ssl/ client1.ts" -Djavax.net.ssl.trustStorePassword="qwerty"

시작 이 완료 되면 ActiveMQ 관리 콘 솔 을 열 면 정상 적 인 경우 SSL 커 넥 터 에 연결 정보 가 있 는 것 을 볼 수 있 습 니 다.
3. 주의사항: 1. Eclipse 프로젝트 에서 Spring 프레임 워 크 설정 ActiveMQ 읽 기 키 와 인증서 파일 은 getResourceAsStream 방법 으로 호출 되 므 로 프로젝트 에 키 와 인증서 파일 을 저장 해 야 프로그램 이 정상적으로 읽 을 수 있 습 니 다. 프로젝트 이외 의 디 렉 터 리 에 놓 여 있 으 면 프로그램 이 읽 기 에 실 패 했 습 니 다. 이 점 은 자신 이 작성 한 자바 데모 류 와 약간의 차이 가 있 습 니 다.2. Eclipse 에서 jvm 시작 파 라 메 터 를 설정 할 때 프로젝트 에 저 장 된 키, 인증서 파일 의 경 로 를 사용 할 수 있 습 니 다. 명령 을 더욱 짧게 하기 위해 경로 가 짧 은 파일 을 도 입 했 습 니 다.3. 메시지 조작 전략 을 잡 습 니 다.
4. 자주 발생 하 는 오류 정보:
PKIX path building failed:sun.security.provider.certpath.SunCertPathBuilderException:unable to find valid certification path to requested target

쉽게 말 하면 인증서 파일 을 찾 을 수 없습니다.문제 원인: 시작 할 때 키 와 인증서 파일 경 로 를 지정 하지 않 고 파일 을 불 러 오 는 중 오류 가 발생 했 습 니 다. eclipse (maven + tomcat 7) 에서 이 오 류 를 보고 합 니 다.해결 방법 은 인자 VM arguments 를 시작 하고 인증 서 를 설정 하 는 경 로 를 추가 합 니 다. 위 와 같 습 니 다.

좋은 웹페이지 즐겨찾기