Tôi đang sử dụng Spring RestTemplate trong ứng dụng của mình để truy cập các dịch vụ web bên ngoài. Tuy nhiên, SSL mũ dịch vụ web này được bật, với chứng chỉ tự ký (tên miền, v.v ... cũng không hợp lệ). Đây chỉ là một mạng cục bộ, vì vậy tôi không phải lo lắng về một số vấn đề bảo mật. Tôi muốn làm cho Spring chấp nhận chứng chỉ này. Đây là những gì tôi đã thực hiện cho đến nay:Cách đặt chứng chỉ được tin cậy cho Spring RestTemplate
1.) Tôi đã cấu hình JBOSS tôi 7 để sử dụng keystore này
<connector name="https" protocol="HTTP/1.1" socket-binding="https" scheme="https" enable-lookups="false" secure="true">
<ssl name="ssl" key-alias="my-private-key" password="rmi+ssl" certificate-key-file="../standalone/configuration/server-keystore.jks" protocol="TLSv1" verify-client="false"/>
</connector>
2.) Sau đây là cấu hình của RestTemplate Bean của tôi (Tôi đang sử dụng autowireing trong các lớp học của tôi)
<bean id="stringHttpConverter" class="org.springframework.http.converter.StringHttpMessageConverter"></bean>
<bean id="httpClientParams" class="org.apache.commons.httpclient.params.HttpClientParams">
<property name="authenticationPreemptive" value="true"/>
<property name="connectionManagerClass" value="org.apache.commons.httpclient.MultiThreadedHttpConnectionManager"/>
</bean>
<bean id="httpClient" class="org.apache.commons.httpclient.HttpClient">
<constructor-arg ref="httpClientParams"/>
</bean>
<bean id="httpClientFactory" class="org.springframework.http.client.CommonsClientHttpRequestFactory">
<constructor-arg ref="httpClient"/>
</bean>
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
<constructor-arg ref="httpClientFactory"/>
<property name="messageConverters">
<list>
<!-- <ref bean="marshallingConverter" /> -->
<ref bean="stringHttpConverter" />
</list>
</property>
</bean>
Tôi đã nhập chứng chỉ máy chủ vào kho khóa, chắc chắn là trong đó. Tôi còn phải làm gì nữa? Tôi đã kiểm tra tất cả các câu hỏi tương tự ở đây, nhưng không ai trong số họ đã giúp. Cảm ơn.
Vì vậy, trong trường hợp của tôi, tôi nên nhập chứng chỉ máy chủ vào máy chủ-keystore.jks? Hoặc nó là một kho khóa riêng biệt cho các chứng chỉ tin cậy? Và một câu hỏi khác, tôi có nên nhập chứng chỉ máy chủ hoặc chứng chỉ CA máy chủ không? Cảm ơn. –