>백엔드 개발 >Golang >tls.X509KeyPair에서 '인증서 입력에서 PEM 데이터를 찾을 수 없습니다' 오류가 나타납니다.

tls.X509KeyPair에서 '인증서 입력에서 PEM 데이터를 찾을 수 없습니다' 오류가 나타납니다.

WBOY
WBOY앞으로
2024-02-05 23:00:081340검색

tls.X509KeyPair 弹出“无法在证书输入中找到任何 PEM 数据”错误

질문 내용

golang x509 패키지를 통해 https 서버용 TLS 인증서를 만들려고 합니다

이 오류가 발생했습니다

으아악

조사 끝에 이렇게 인증서를 만들었습니다

으아악

아래와 같은 오류가 뜹니다

으아악

pem.encodetomemory 이후에 디코딩을 시도합니다

pem.type은 정확하지만 "publiccert" 변수가 0입니다. 인증서 시작 부분에 n을 추가하려고 했지만 인증서 자체가 0이 아닙니다. 누구든지 도와주실 수 있나요? p>

TLS를 작동시키려면 어떻게 해야 하나요? ? ?


정답


이 코드에는 몇 가지 문제가 있습니다

으아악

이 단계의 검사publiccert的内容显示了期望值。但以下语句将简单地覆盖 publiccert:

으아악

이 진술 다음에 publiccert 可以看到这一点。 如文档所述 publiccert를 확인하면 이제 실제 인증서 다음에 데이터가 표시됩니다.

이렇게 해야지

으아악

이 수정된 문 이후의 publiccert 내용을 확인하면 예상 값이 다시 표시됩니다.

으아악

이렇게 하면 예상 값이 privitkey로 가져옵니다. 하지만 out의 일부일 뿐이고 out이 작업을 변경했기 때문에 변경됩니다 privitkey 中。但是,它将更改 publiccert,因为它只是 out 的一部分,并且 out 已更改操作。因此,out 现在将在开头包含 privitkey,而不再是证书的开头 - 这反映在 publiccert. 따라서 이제 out에는 인증서 시작 부분이 아닌 시작 부분에 privitkey가 포함됩니다. 이는

값에 반영됩니다.

또한 bytes.buffer.bytes

에 대한 설명서를 참조하세요. 슬라이스는 다음 버퍼 수정까지만 유효합니다

(즉, 다음 읽기, 쓰기, 재설정 또는 자르기 메소드가 호출될 때까지만 유효합니다)

그럼 기존 버퍼만 재설정하는 것이 아니라

으아악 privitkey 创建一个新缓冲区,并为 publiccertprivitkey에 대한 새 버퍼를 생성하고

에 대한 기존 버퍼를 유지하는 것이 좋습니다. 으아악

위 내용은 tls.X509KeyPair에서 '인증서 입력에서 PEM 데이터를 찾을 수 없습니다' 오류가 나타납니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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