그sslinfo모듈은 연결할 때 현재 클라이언트가 제공한 SSL 인증서에 대한 정보를 제공합니다.PostgreSQL. 현재 연결이 SSL을 사용하지 않으면 모듈은 쓸모가 없습니다(대부분의 함수는 NULL을 반환합니다).
이 모듈을 통해 제공되는 정보 중 일부는 내장된 시스템 보기를 통해서도 얻을 수 있습니다.pg_stat_ssl.
이 확장 프로그램은 설치가 다음과 같이 구성되지 않으면 전혀 빌드되지 않습니다.--with-ssl=openssl.
ssl_is_used()는 부울을 반환합니다. 현재 서버 연결이 SSL을 사용하는 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
ssl_version()이 텍스트를 반환합니다. SSL 연결에 사용되는 프로토콜의 이름을 반환합니다(예: TLSv1.0, TLSv1.1, TLSv1.2 또는 TLSv1.3).
ssl_cipher()가 텍스트를 반환합니다. SSL 연결에 사용되는 암호 이름을 반환합니다(예: DHE-RSA-AES256-SHA).
ssl_client_cert_present()는 부울을 반환합니다. 현재 클라이언트가 서버에 유효한 SSL 클라이언트 인증서를 제공한 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다. (서버는 클라이언트 인증서를 요구하도록 구성되거나 구성되지 않을 수 있습니다.)
ssl_client_serial()이 숫자를 반환함 현재 클라이언트 인증서의 일련번호를 반환합니다. 인증서 일련 번호와 인증서 발급자의 조합은 인증서를 고유하게 식별하도록 보장됩니다(그러나 소유자는 아닙니다. 소유자는 정기적으로 키를 변경하고 발급자로부터 새 인증서를 받아야 합니다).
따라서, 귀하가 자신의 CA를 실행하고 이 CA의 인증서만 서버에서 허용하도록 허용하는 경우 일련번호는 사용자를 식별하는 가장 신뢰할 수 있는(비록 기억하기 쉽지는 않지만) 수단입니다.
ssl_client_dn()이 텍스트를 반환함 문자 데이터를 현재 데이터베이스 인코딩으로 변환하여 현재 클라이언트 인증서의 전체 제목을 반환합니다. 인증서 이름에 ASCII가 아닌 문자를 사용하는 경우 데이터베이스도 이러한 문자를 나타낼 수 있다고 가정합니다. 데이터베이스가 SQL_ASCII 인코딩을 사용하는 경우 이름의 ASCII가 아닌 문자는 utf-8 시퀀스로 표시됩니다.
결과는 다음과 같습니다/CN=누군가 /C=일부 국가/O=일부 조직.
ssl_issuer_dn()이 텍스트를 반환함 문자 데이터를 현재 데이터베이스 인코딩으로 변환하여 현재 클라이언트 인증서의 전체 발급자 이름을 반환합니다. 인코딩 변환은 다음과 동일하게 처리됩니다.ssl_client_dn.
이 함수의 반환 값과 인증서 일련번호의 조합은 인증서를 고유하게 식별합니다.
이 기능은 서버의 인증 기관 파일에 신뢰할 수 있는 CA 인증서가 두 개 이상 있거나 이 CA가 중간 인증 기관 인증서를 발행한 경우에만 정말 유용합니다.
ssl_client_dn_field(필드 이름 텍스트)가 텍스트를 반환합니다. 이 함수는 인증서 제목에 지정된 필드의 값을 반환하거나 해당 필드가 없으면 NULL을 반환합니다. 필드 이름은를 사용하여 ASN1 개체 식별자로 변환되는 문자열 상수입니다.오픈SSL객체 데이터베이스. 다음 값이 허용됩니다.
commonName(별칭 CN) 성(별칭 SN) 이름 주어진 이름(별칭 GN) 국가 이름(별칭 C) 지역 이름(별칭 L) stateOrProvinceName(별칭 ST) 조직 이름(별칭 O) organizationUnitName(별칭 OU) 제목 설명 이니셜 우편번호 거리 주소 세대 한정자 설명 dnQualifier x500고유 식별자 가명 역할 이메일주소
다음 필드는 모두 선택사항입니다. 단, 제외공통이름. 어느 것이 포함되고 어느 것이 포함되지 않는지는 전적으로 CA의 정책에 따라 다릅니다. 그러나 이러한 필드의 의미는 X.500 및 X.509 표준에 의해 엄격하게 정의되므로 임의로 의미를 부여할 수는 없습니다.
ssl_issuer_field(필드 이름 텍스트)가 텍스트를 반환함 다음과 같음ssl_client_dn_field, 그러나 인증서 주체가 아닌 인증서 발급자에 대한 것입니다.
ssl_extension_info()가 레코드 세트를 반환합니다. 클라이언트 인증서 확장에 대한 정보 제공: 확장 이름, 확장 값 및 중요한 확장인지 여부.
빅터 와그너<vitus@cryptocom.ru, 크립토콤 LTD
드미트리 보로닌<carriingfate92@yandex.ru
Cryptocom OpenSSL 개발 그룹의 이메일:<openssl@cryptocom.ru
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.