Używam x/crypto/pkcs12 do załadowania pliku * .p12 sformatowanego w DER. Jest an example in the documentation, który używa tls.X509KeyPair
do utworzenia tls.Certificate
, który może być użyty dla klienta HTTP.Jak zmienić certyfikat x509.Clicencja w certyfikat Tls.Certyfikat w Go?
To jest idealne i działa dobrze. Ale chcę też sprawdzić, czy certyfikat nie wygasł. Biblioteka pkcs12
ma także Decode function, która zwraca certyfikat x509, który można użyć, niż do korzystania z metody Verify. To również działa dobrze.
Po prostu wydaje mi się dziwne, że dwukrotnie dekoduję DER. Raz do sprawdzenia, aby uzyskać x509.Certificate
, aby uzyskać tls.Certificate
. Nie znam relacji między tymi dwiema strukturami certyfikatów, ale widząc, że pakiet tls ma funkcję o nazwie tls.X509KeyPair, która zajmuje kilka bajtów, nie powinien istnieć również oczywisty sposób uzyskania certyfikatu tls.certificate z x509. Certyfikat lub wiza versa? czego mi brakuje?
Dzięki Matt. Dam temu szansę. Czy muszę zrobić cokolwiek z innymi polami tls.Certificate lub zadzwonić do dowolnej funkcji, czy powinien "po prostu działać"? Zauważyłem, że x509.Certificate.Verify() również zwraca łańcuchy. – nathany
Serwery TLS będą wymagały pola 'PrivateKey', aby pomyślnie ukończyć uzgadnianie. Myślę, że reszta jest opcjonalna. – Matt
Wygląda na to, że potrzebuję klucza PrivateKey dla klientów. Patrząc w to. tls: klucz prywatny certyfikatu klienta typu nie implementuje crypto.Signer –
nathany