это мало связано с валидацией клиентского на сервере
Именно
по идее @onokonem выше написал, но я не знаю - можно ли -k как-то совместить с подменой CN в нём
-k, --insecure (TLS) By default, every SSL connection curl makes is verified to be secure. This option allows curl to proceed and operate even for server connections otherwise considered insecure. The server connection is verified by making sure the server's certificate contains the right name and verifies successfully using the cert store. See this online resource for further details: https://curl.haxx.se/docs/sslcerts.html See also --proxy-insecure and --cacert.
на сервере можно кастомно хэндлить хендшейк и в этой ф-ции проверить все поля клиентского сертификата. я делал так когда-то; заодно проверяя сертификат на отозванность. могу накопать код, но не очень быстро
У меня как раз и мысль - а не сможет ли клиент как-то с -k всё же отослать эти поля?
это всё ломает тогда
если клиент не передаст сертификат, хэндшейк на сервере вернет ошибку, коннект будет разорван, это все зависит от настроек сервера
я что-то с ходу не очень вижу как это в gin например включить
похоже настраивается на уровне http.Server - https://medium.com/@erinus/go-my-way-day-2-344b47e270b9
ага, спасибо, с ходу видно, что там написано Handler: router но само определение не дано
вероятно, я определелял вот это поле -ф-цию в tls.Config: // VerifyPeerCertificate, if not nil, is called after normal // certificate verification by either a TLS client or server. It // receives the raw ASN.1 certificates provided by the peer and also // any verified chains that normal processing found. If it returns a // non-nil error, the handshake is aborted and that error results. // // If normal verification fails then the handshake will abort before // considering this callback. If normal verification is disabled by // setting InsecureSkipVerify, or (for a server) when ClientAuth is // RequestClientCert or RequireAnyClientCert, then this callback will // be considered but the verifiedChains argument will always be nil. VerifyPeerCertificate func(rawCerts [][]byte, verifiedChains [][]*x509.Certificate) error https://pkg.go.dev/crypto/tls#Config
Обсуждают сегодня