> 백엔드 개발 > Golang > 인증서에 서명하면 인증 키 식별자가 SKID에 복사됩니다.

인증서에 서명하면 인증 키 식별자가 SKID에 복사됩니다.

PHPz
풀어 주다: 2024-02-09 13:27:32
앞으로
905명이 탐색했습니다.

签署证书时,授权密钥标识符被复制到 SKID

php 편집자 Strawberry는 서명 인증서를 소개하면서 승인된 키 식별자(SKID)가 서명 프로세스에서 중요한 역할을 한다는 점을 지적했습니다. 인증서가 서명되면 SKID가 인증서에 복사되어 인증서의 인증된 키를 식별합니다. 이 식별자가 있으면 인증서의 진위성과 적법성을 보장하고 후속 인증서 확인 및 관리를 용이하게 하는 데 도움이 될 수 있습니다. SKID 복사는 인증서 서명 시 꼭 필요한 단계로, 인증서의 사용 및 유지에 있어 중요한 역할을 합니다.

질문 내용

CSR과 spacemonkeygo/openssl래퍼를 사용하여 인증서에 서명하려고 합니다.

인증서 서명을 위한 콘솔 openssl 명령이 예상대로 작동하고 유효한 인증서를 얻습니다.

으아악

스크린샷에서 볼 수 있듯이 skid와 issuer의 keyid가 다릅니다.

그러나 Go의 내 코드는 잘못된 인증서를 제공합니다. 여기서 스키드에는 인증서를 발급한 키 ID의 정확한 값이 포함되어 있습니다. 이로 인해 "인증 키 식별자"에 "발급자"에 대한 잘못된 값이 복사됩니다. 스키드가 발급자의 키 ID와 동일하므로 인증서가 자체 발급된 것으로 "생각"합니다.

으아악

(생성된 것이 맞습니다)

전화하지 않으면setissuer 스키드가 새로 생성되는데 생성된 인증서가 여전히 "잘못됨"으로 표시됩니다.

내 코드에서 내가 뭘 잘못하고 있는 걸까?

업데이트: 2개의 래퍼에 대한 확장을 추가하는 구현을 비교했습니다. spacemonkey/gopyopenssl.

이동:

으아악

python(일부 설명 생략):

으아악

명백한 차이점은 api: python 버전이 subjectissuer를 오버로드용 매개변수로 허용한다는 것입니다. Go 버전은 그렇지 않습니다.

구현 차이점은 다음과 같습니다.

  • 파이썬으로 호출x509v3_ext_nconf
  • x509v3_ext_conf_nid 전화가 왔습니다. 두 기능 모두 github에서 찾을 수 있습니다.

ca 서명과 함께 openspacemonkey/go-openssl을 사용할 때 스키드 확장을 추가할 수 없는 것 같습니다.

유일한 방법은 c 바인딩을 수동으로 사용하고 "파이썬처럼 수행"하는 것입니다.

해결 방법

skid 및 Authoritykeyidentifier를 추가하는 영리한 해결 방법을 구현했습니다. 생성된 인증서가 유효합니다. 그러나 certificate 结构体的 x *c.x509 멤버는 내보내지지 않으므로 해당 멤버에 액세스하는 유일한 방법은 안전하지 않은 포인터와 캐스트를 통해서입니다.
이는 권장되는 접근 방식은 아니지만 spacemonkey/go 업데이트가 나올 때까지 수행할 수 있는 방법입니다(언젠가 일어날지는 의문입니다).

으아악

위 내용은 인증서에 서명하면 인증 키 식별자가 SKID에 복사됩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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