상호 인증을 사용하는 HTTPS
3305 단어 javaprogrammingtomcatwebdev
그래서 보안 초보자(나도 마찬가지)도 이해할 수 있는 미래 보장형 SSL 구성이 필요했기 때문에 다음과 같이 생각해 냈습니다.
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol" scheme="https" secure="true" maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="localhost">
<SSLHostConfig hostName="localhost" truststoreFile="server-truststore.jks" protocols="all" truststorePassword="changeit" certificateVerification="required">
<Certificate certificateKeystoreFile="server-keys.p12" certificateKeystoreType="PKCS12" certificateKeystorePassword="changeit" certificateKeyAlias="server" type="RSA"/>
</SSLHostConfig>
</Connector>
HTTPS로 연결하여 웹 서버에 연결하는 브라우저가 주소 표시줄에 신뢰할 수 있는 자물쇠 아이콘을 표시하기를 원하십니까? 이는 실제로 SSL 또는 TLS를 통한 HTTP가 필요함을 의미합니다.
이를 위해 서버는 자신을 식별하는 적절한 인증서를 브라우저에 보냅니다. 이 서버 인증서는 서버가 소유한 키를 저장하기 때문에 이와 같이 이름이 지정된 키 저장소에 저장됩니다. 요소는 이 키 저장소의 위치, 해당 유형(기본 JKS, PKCS12일 수 있음), 내부 항목 및 여는 방법에 대한 정보를 설명합니다.
물론 서버에서 보낸 인증서는 클라이언트가 신뢰하는 CA에서 서명해야 합니다. 그렇지 않으면 "자체 서명된 인증서"라는 큰 경고와 함께 SSL을 받게 됩니다. 서버.
특정 브라우저만 웹 서버에 연결할 수 있기를 원하십니까? 매우 일반적인 요구 사항은 아니며 브라우저 연결에는 매우 이례적입니다. 그러나 HTTPS로 REST API 서버를 구축하고 이 API에 대한 액세스를 제한해야 하는 경우 더 필요합니다.
이를 위해 서버는 클라이언트를 신뢰해야 하며 클라이언트는 인증서로 자신을 식별해야 합니다. 서버가 신뢰하는 인증서는 SSLHostConfig 요소에 구성된 신뢰 저장소에 저장됩니다. 또한 certificateVerification을 지정하여 이 클라이언트 인증을 강제로 수행해야 합니다.
물론 모든 인증서를 하나의 저장소에 저장하고 위의 두 가지 용도로 사용할 수 있지만 역할에 따라 분할하는 것이 항상 설명하기 쉽습니다. 대부분의 경우 이러한 모든 인증서는 어쨌든 x509 인증서이므로 "x509 상호 인증"이라는 일반적인 토론 주제이기도 합니다.
두 가지 참고 사항:
유용한 링크:
https://tomcat.apache.org/tomcat-8.5-doc/config/http.html
https://tomcat.apache.org/tomcat-8.5-doc/ssl-howto.html
https://docs.spring.io/spring-security/site/docs/4.0.x/reference/html/x509.html
https://www.baeldung.com/java-https-client-certificate-authentication
https://medium.com/ing-tech-romania/a-simple-mtls-guide-for-spring-boot-microservices-c6bfc9878369
Reference
이 문제에 관하여(상호 인증을 사용하는 HTTPS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sorincostea/https-with-mutual-authentication-2i1c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)