>백엔드 개발 >Golang >문자열 형식으로 x509 인증서에서 주체 이름 생성

문자열 형식으로 x509 인증서에서 주체 이름 생성

WBOY
WBOY앞으로
2024-02-11 10:00:101233검색

从字符串格式的 x509 证书生成主题名称

php Editor Strawberry x509 인증서에서 주체 이름을 문자열 형식으로 생성하는 것은 개발자가 인증서에서 주요 정보를 추출하는 데 도움이 될 수 있는 중요한 작업입니다. x509 인증서를 문자열 형식으로 구문 분석하면 발급자, 유효 기간, 공개 키 및 인증서의 기타 정보를 포함하여 인증서의 주체 이름을 얻을 수 있습니다. 이 프로세스는 보안 네트워크 통신을 구축하고, 인증서의 적법성을 확인하고, 사용자 개인 정보를 보호하는 데 중요합니다. PHP에서는 OpenSSL 확장이 제공하는 기능을 사용하여 이 기능을 구현하고 x509 인증서를 간단하고 효율적으로 처리할 수 있습니다.

질문 내용

x509.certificate에서 고유 이름을 생성하려고 합니다.

내가 예상하는 형식은 다음과 같습니다.

으아아아

(일부 값을 라벨로 대체했습니다)

내 코드에서는 다음과 같이 dnqualifier 부분 없이 예상되는 문자열을 얻습니다.

으아아아

여기, 2.5.4.46은 "dnqualifier"의 asn.1 개체 ID입니다. 참조: 링크 값은 16진수 문자열처럼 보입니다.

고유 이름을 예상 형식으로 가져오는 표준 방법(또는 간단한 해결 방법)이 있습니까? 즉, objectidentifier 대신 "dnqualifier"라는 텍스트가 나타나야 하며 16진수 대신 실제 문자열 값이 나타나야 합니다.

내 코드는 다음과 같습니다:

으아아아

이 코드의 출력certificate.subject.string()은 다음과 같습니다. cn=<common_name>,ou=<org_unit>,o=<org>,2.5.4.46=#131c537771614a5531514c2449444e4846373755547a1f5749653955303d"

게다가

으아아아

그리고

으아아아

어느 쪽도 도움이 되지 않습니다.

해결 방법

표준 라이브러리는 제한된 속성 목록만 제공합니다.

으아아아

다른 속성의 경우 개체 식별자를 이름으로 사용하고 가능한 경우 값을 16진수 문자열로 인코딩합니다((rdnsequence).string 참조).

으아아아

맞춤형 스트링을 얻을 수 있는 손잡이는 제공되지 않습니다. 그래서 우리는 그것을 스스로 해야 합니다.

원하는 속성을 나열하고 certificate.subject.tordnsequence().string()에서 반환된 문자열에 추가하는 것이 좋습니다. 이렇게:

으아아아

출력:

으아아아

위 내용은 문자열 형식으로 x509 인증서에서 주체 이름 생성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제