X509v3 인증 키 식별자에 DirName 및 일련 번호를 추가하는 방법

王林
풀어 주다: 2024-02-10 10:54:08
앞으로
1011명이 탐색했습니다.

如何将 DirName 和序列号添加到 X509v3 授权密钥标识符

php 편집기 Strawberry에서는 X509v3 인증 키 식별자에 DirName과 일련 번호를 추가하는 방법을 소개합니다. 네트워크 통신에서 인증 키 식별자(X509v3)는 통신 당사자의 신원을 확인하는 데 사용되는 디지털 인증서입니다. DirName은 인증서 보유자의 이름을 나타내고, 일련번호는 인증서를 고유하게 식별하는 데 사용되는 번호입니다. DirName과 일련번호를 추가함으로써 인증서의 가독성과 고유성을 높이고, 통신의 보안성과 신뢰성을 향상시킬 수 있습니다. 다음으로 이를 수행하는 방법을 자세히 설명하겠습니다.

질문 내용

openssl과 go 코드를 사용하여 클라이언트 인증서를 생성하려고 합니다. 필요한 확장이 포함된 인증서를 생성하는 openssl 스크립트가 있고 go 코드를 사용하여 동일한 결과를 얻고 싶습니다.

openssl을 사용하세요

options.ext

openssl에서 사용하는 options.ext 파일에는 다음 확장자가 포함되어 있습니다.

으아아아

Generate-client-cert.sh

현재 가지고 있는 openssl 스크립트는 다음과 같습니다.

으아아아

인증서를 생성한 후 다음 명령을 사용하여 세부 정보를 볼 수 있습니다.

으아아아

생성된 인증서의 구조는 다음과 같습니다.

으아아아

다음과 같아야 합니다:

으아아아

코드 실행

내 Go 코드에서는 x509 패키지를 사용하여 인증서를 생성합니다. 하지만 x509v3 인증 키 식별자 확장을 설정하는 방법을 잘 모르겠습니다. 내 Go 코드의 관련 부분은 다음과 같습니다.

으아아아

x509v3 인증 키 식별자에 디렉터리 이름과 일련 번호를 어떻게 추가하나요?

관련

  • http://oid-info.com/get/2.5.29.35
  • https://github.com/golang/go/issues/47096(원본)

내가 이것을 시도할 때:

으아아아

결과는 다음과 같습니다.

basicconstraints=ca:false
authoritykeyidentifier=keyid,issuer
subjectkeyidentifier=hash
keyusage=digitalsignature
extendedkeyusage=clientauth
로그인 후 복사

Workaround

authoritykeyidentifiervalue 可以使用 asn1.marshal 生成。下面的演示根据 rfc 5280定义了 struct authkeyid > 이 구조를 사용하여 값을 생성합니다.

으아아아

16진수 인코딩 값은 다음과 같습니다.

으아아아

16진수 문자열은 asn.1 :

과 같은 자바스크립트 디코더를 사용하여 생성할 수 있습니다.

다음 C# 데모는 동일한 결과를 제공합니다.

으아아아

업데이트:

이것은 이메일 주소가 포함된 gen의 업데이트된 버전입니다:

으아아아

oid는 더 이상 사용되지 않습니다(http://oid-info.com/get/1.2.840.113549.1.9.1 참조). .net에도 포함되지 않습니다.

위 내용은 X509v3 인증 키 식별자에 DirName 및 일련 번호를 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!