Go의 X509 인증서에서 전체 주체 DN을 추출하는 방법
X509 인증서에서 주체 DN(고유 이름) 또는 발급자 DN 얻기 Go에서는 문자열로 사용하는 것이 어려울 수 있습니다. 하지만 이 작업을 단순화할 수 있는 편리한 방법이 있습니다.
솔루션
동료의 기여 덕분에 getDNFromCert라는 사용자 정의 함수가 개발되어 추출을 수행했습니다. X509 인증서의 전체 DN. 이 함수는 pkix.Name 네임스페이스를 입력으로 사용하고 DN의 문자열 표현을 반환합니다.
<code class="go">func getDNFromCert(namespace pkix.Name, sep string) (string, error) { subject := []string{} for _, s := range namespace.ToRDNSequence() { for _, i := range s { if v, ok := i.Value.(string); ok { if name, ok := oid[i.Type.String()]; ok { // <oid name>=<value> subject = append(subject, fmt.Sprintf("%s=%s", name, v)) } else { // <oid>=<value> if no <oid name> is found subject = append(subject, fmt.Sprintf("%s=%s", i.Type.String(), v)) } } else { // <oid>=<value in default format> if value is not string subject = append(subject, fmt.Sprintf("%s=%v", i.Type.String, v)) } } } return sep + strings.Join(subject, sep), nil }</code>
함수 사용
x509Cert라는 X509 인증서의 경우 다음과 같이 getDNFromCert 함수를 호출할 수 있습니다.
<code class="go">subj, err := getDNFromCert(x509Cert.Subject, "/") if err != nil { // Do error handling } fmt.Println(subj)</code>
출력 예
다음 제목 DN이 있는 샘플 인증서의 경우:
CN=common name,OU=unit,O=some organization,C=US
getDNFromCert 함수는 다음 문자열을 반환합니다.
/C=US/O=some organization/OU=unit/CN=common name
이 방법은 Go의 X509 인증서에서 전체 주체 또는 발급자 DN을 추출하는 쉽고 효율적인 방법을 제공합니다. 작업을 단순화하고 수동으로 문자열을 조작할 필요가 없습니다.
위 내용은 Go의 X.509 인증서에서 전체 주체 고유 이름을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!