Я использую ChilkatAx-9.5.0-win32.dll (9.5.0.51) в vb6, чтобы сделать сообщение https. Коды перестают работать, когда владелец сервера обновил свою систему новыми сертификатами. С curl он работает с опцией --cacert для самозаверяющего сертификата в дополнение к --cert и --key. Перед обновлением требуются только --cert и --key.
Я пробовал несколько методов, включая ChilkatTrustedRoots, чтобы позволить распознавать самоподписанный сертификат CA, например:
...
trustedRoot.LoadCaCertsPem ("< the chain.pem file>")
trustedRoot.TrustSystemCaRoots = 1
trustedRoot.Activate
...
Оцените, если кто-нибудь может посоветовать, как добиться тех же функций, что и у опции "--cacert" в curl with chilkat. Удар бревна из Чилката.
Chilkat log:
clientHandshake2(140ms):
readHandshakeMessages(62ms):
processHandshakeRecord:
processHandshakeMessage:
processServerHello:
MajorVersion: 3
MinorVersion: 3
cipherSuite: RSA_WITH_AES_256_CBC_SHA
cipherSuiteNumeric: 00,35
compressionMethod: 0
minAcceptableRsaKeySize: 1024
--processServerHello
--processHandshakeMessage
--processHandshakeRecord
--readHandshakeMessages
Sending client-side certificate(s)...
sendClientCertificates:
buildCertificatesMessage:
numCerts: 1
--buildCertificatesMessage
--sendClientCertificates
buildClientKeyExchange:
buildClientKeyExchangeRsa:
modulus_bitlen: 2048
bigEndian: 1
padding: PKCS 1.5
--buildClientKeyExchangeRsa
--buildClientKeyExchange
sendCertificateVerify(16ms):
Sending ClientCertVerify message...
RsaDerToKey:
ModulusLen: 257
DLen: 257
PLen: 129
QLen: 129
DPLen: 129
DQLen: 128
InvQLen: 128
--RsaDerToKey
signatureSize: 260
--sendCertificateVerify
readHandshakeMessages(62ms):
processAlert(15ms):
TlsAlert:
level: fatal
descrip: unknown certificate authority
--TlsAlert
Closing connection in response to fatal SSL/TLS alert.
terminateConnection(15ms):
Terminated TCP connection.
--terminateConnection
--processAlert
Aborting handshake because of fatal alert.
--readHandshakeMessages
--clientHandshake2