HTTPS를 통해 사용자가 지정한 호스트의 애플리케이션에 액세스하는 것은 일반적인 요구 사항이지만 실제 애플리케이션에서는 약간의 혼란이 발생할 수 있습니다. 이 문제에 대해 PHP 편집자 Banana는 FQDN을 검색하여 도움을 주어야 한다고 생각합니다. FQDN(정규화된 도메인 이름)은 호스트 이름과 도메인 이름을 포함하는 정규화된 도메인 이름입니다. FQDN을 조회하면 사용자가 지정한 호스트의 정확한 위치를 확인할 수 있어 정확한 도움과 서비스를 제공할 수 있습니다. 따라서 FQDN을 조회하는 것은 HTTPS 액세스 시 유용한 전략입니다.
다른 호스트에서 HTTPS를 통해 서버와 통신하는 golang 애플리케이션을 사용하고 있습니다. 특히 컨텍스트가 중요한 경우: 동일한 Google Cloud 프로젝트의 GCE 인스턴스에서 Dataproc 클러스터와 통신합니다(특별한 도메인 설정이 필요하지 않음).
서버는 클라이언트에 수동으로 설치한 자체 서명 인증서를 생성합니다.
서버와 클라이언트 모두 내 Google Cloud 프로젝트의 GCE 인스턴스입니다(FQDN은 <hostname>.c.<project_id>.internal
입니다)
golang의 http.Client를 사용하여 클라이언트에서 서버에 연결하려고 하면 다음과 같은 오류가 발생합니다.
으아악하지만 FQDN(<server_hostname>.c.<project_id>.internal
)을 전달하면 즉시 작동합니다.
참고로 이 동작은 cURL을 실행할 때 나타나는 동작과 일치합니다.
으아악제 질문은:
*.c.<project_id>.internal
의 일부이고 기본적으로 작동합니다. 그렇죠? 아니면 전달된 문자열을 실제로 와일드카드 문자열과 일치시키는 데 사용해야 합니까(즉, 조회를 수행하지 않고 fqdn을 전달한 경우에만 작동함을 의미함)? 참고: 유효성 검사를 건너뛰고 싶지는 않습니다. 단지 현재 상황을 더 잘 이해하고 모범 사례가 무엇인지 알고 싶을 뿐입니다.
감사합니다!
<server_hostname>
및 <server_hostname>
和 <server_hostname>.c.<project_id>.internal
가 동일한 콘텐츠로 확인되더라도 인증서에는 두 번째 인증서(또는 와일드카드)만 포함됩니다. 성냥). 자체 생성된 이름이므로 짧은 이름을 SAN(주체 대체 이름)으로 추가할 수 있습니다.
OpenSSL용 추가 플래그: 공용 CA는 공개적으로 확인할 수 없는 SAN이 포함된 인증서를 제공하지 않을 것입니다. (일부 가능성이 있지만 시도하지 않았습니다)
예를 들어 google.com.someevildomain.org
提供或信任 google.com
부터 시작하고 싶지 않다면 이는 보안 기능입니다.
위 내용은 HTTPS를 통해 사용자가 지정한 호스트에 액세스하는 애플리케이션은 FQDN을 조회하여 지원을 제공해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!