| ||||
| ||||
Есть сертификат пользователя, мне надо найти сертификат УЦ и сохранить в файл. Делаю следующие #define TYPE_DER (X509_ASN_ENCODING | PKCS_7_ASN_ENCODING) hSystemStore = CertOpenStore(CERT_STORE_PROV_SYSTEM,0,0,CERT_STORE_OPEN_EXISTING_FLAG|CERT_STORE_READONLY_FLAG|CERT_SYSTEM_STORE_CURRENT_USER,L"ROOT") tempCertif=CertCreateCertificateContext(TYPE_DER,(BYTE *)сertif,(DWORD)lencertif); tempCertifRoot=CertFindCertificateInStore(hSystemStore,TYPE_DER ,0,CERT_FIND_ISSUER_OF,tempCertif,NULL); Поиск ничего не дает. И самое главное что это происходит только с одним сертификатом УЦ. Подскажите может я чего не так делаю? | ||||
Ответы: | ||||
| ||||
А он точно там есть? Может быть он в Local Machine? | ||||
| ||||
Точно есть. Я для надежности в юзера и Local Machine сертификат УЦ установил. | ||||
| ||||
Мб тогда поиск идет не по тому сертификату? | ||||
| ||||
Сертификат тот который надо, проверил. Может выслать сертификат УЦ и сертификат пользователя | ||||
| ||||
Лучше выкладывайте прям здесь, в base64 | ||||
| ||||
Сертификат пользователя -----BEGIN CERTIFICATE----- MIIEUzCCBACgAwIBAgIKNZ5lRgAAAAAxaDAKBgYqhQMCAgMFADCBnzEeMBwGCSqG SIb3DQEJARYPY2FAb3JiaXRhY29tLnJ1MQswCQYDVQQGEwJSVTEZMBcGA1UECBMQ S3Jhc25vZGFyIHJlZ2lvbjESMBAGA1UEBxMJS3Jhc25vZGFyMRQwEgYDVQQKEwtM SlNDIE9yYml0YTESMBAGA1UECxMJQ0EgT3JiaXRhMRcwFQYDVQQDEw5TRkQgQ2xh c3MgMSBDQTAeFw0wNzA3MzAxNDUxMDBaFw0wODA3MzAxNTAwMDBaMIIBbDEmMCQG CSqGSIb3DQEJARYXb29vLWFsdGVybmF0aXZhQGxpc3QucnUxCzAJBgNVBAYTAlJV MS0wKwYDVQQIHiQEGgRABDAEQQQ9BD4ENAQwBEAEQQQ6BDgEOQAgBDoEQAQwBDkx IzAhBgNVBAceGgRBBEIALgAgBBoEMAQ9BDUEMgRBBDoEMARPMSkwJwYDVQQKHiAE HgQeBB4AIAQQBDsETARCBDUEQAQ9BDAEQgQ4BDIEMDFBMD8GA1UEAx44BB4EHgQe ACAEEAQ7BEwEQgQ1BEAEPQQwBEIEOAQyBDAAIAAoADIAMwAzADQAMAAxADAAMAAx ACkxMDAuBgkqhkiG9w0BCQITITIzMzQwMTk2MDctMjMzNDAxMDAxLTIzMzQwMDE3 MDk1MjFBMD8GA1UEBB44BBAEPQQ0BEAEOARPBD0EPgQyACAEHQQ4BDoEPgQ7BDAE OQAgBBIEOAQ6BEIEPgRABD4EMgQ4BEcwYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYH KoUDAgIeAQNDAARAwZNvotrdhSQcZVm6z1qoGJL6maO9rBOZa8VsuHcmYVrrFQmc Ba+A8P6n+TsrX7qP0OPiK0LA7lN5S8Z1PVYeyKOCAUgwggFEMA4GA1UdDwEB/wQE AwIE8DA4BgNVHSUEMTAvBggrBgEFBQcDAgYIKwYBBQUHAwQGByqFAwICIgYGBiqF AwMHAQYIKoUDAwcBAQEwOwYDVR0RBDQwMqAwBgkqhQMDBwEBAQGgIwwhMjMzNDAx OTYwNy0yMzM0MDEwMDEtMjMzNDAwMTcwOTUyMB0GA1UdDgQWBBT4OcFiHKBeTFBk mEhdjSUwL4IMpDAfBgNVHSMEGDAWgBS8EnjN1c0c2Ru5e69A4s+c7/6qzDAzBgNV HR8ELDAqMCigJqAkhiJodHRwOi8vY2Eub3JiaXRhY29tLnJ1L2NkcC9TRkQuY3Js MEYGCCsGAQUFBwEBBDowODA2BggrBgEFBQcwAoYqaHR0cDovL2NhLm9yYml0YWNv bS5ydS9jZXJ0aWZpY2F0ZS9TRkQuY3J0MAoGBiqFAwICAwUAA0EAgSKQmetw7P+h X51DmNsmyMhZ2ECL0jLoROhadqR5hQ8ICT/1liuJCLnP2n+No7ib3sEB9MTN9vU8 g6mVqzPXMg== -----END CERTIFICATE----- Сертификат УЦ -----BEGIN CERTIFICATE----- MIIDLzCCAtygAwIBAgIQAVyzvUFw4YFPHdAve8uDXjAKBgYqhQMCAgMFADBhMQsw CQYDVQQGEwJSVTE5MDcGA1UECh4wBCMENAQ+BEEEQgQ+BDIENQRABE8ETgRJBDgE OQAgBCYENQQ9BEIEQAAgBC4EJAQeMRcwFQYDVQQDEw5TRkQgQ2xhc3MgMSBDQTAe Fw0wNDExMTExNzQxMTZaFw0xMTExMTExNzUwMTZaMGExCzAJBgNVBAYTAlJVMTkw NwYDVQQKHjAEIwQ0BD4EQQRCBD4EMgQ1BEAETwROBEkEOAQ5ACAEJgQ1BD0EQgRA ACAELgQkBB4xFzAVBgNVBAMTDlNGRCBDbGFzcyAxIENBMGMwHAYGKoUDAgITMBIG ByqFAwICIwEGByqFAwICHgEDQwAEQPNpiAsUmkWO3uudYPDUbw4sRkjeQfYqUjEf lzPsETAozVPN+5vZTn+yPlYdNXMy6GIEBpO61PDxrcyQBWUDdHSjggFqMIIBZjAL BgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUvBJ4zdXNHNkb uXuvQOLPnO/+qswwewYDVR0fBHQwcjA2oDSgMoYwaHR0cDovL2NlcnQyL0NlcnRF bnJvbGwvU0ZEJTIwQ2xhc3MlMjAxJTIwQ0EuY3JsMDigNqA0hjJmaWxlOi8vXFxj ZXJ0MlxDZXJ0RW5yb2xsXFNGRCUyMENsYXNzJTIwMSUyMENBLmNybDAQBgkrBgEE AYI3FQEEAwIBADCBlwYDVR0gBIGPMIGMMIGJBgcqhQMCAiYBMH4wMgYIKwYBBQUH AgEWJmh0dHA6Oi8vVUNXZWJTaXRlL0NBUG9saWN5L2RlZmF1bHQuYXNwMEgGCCsG AQUFBwICMDweOgQaBDsEMARBBEEAIAAxACAEOAQ0BDUEPQRCBDgERAQ4BDoEMARG BDgEOAAgBDoEOwQ4BDUEPQRCBDAwCgYGKoUDAgIDBQADQQBVRRLuvlS46BMfyA6W 6Zr8V3pti6aOsfh7G/5rDolvS4l5/Gq+IZpqo7KWt0YtbxWVqK4tBIsjuDzi5fuB wsZJ -----END CERTIFICATE----- | ||||
| ||||
Несовпадение издателя в сертификате пользователя и субъекта в сертификате ЦС. | ||||
| ||||
А как же тогда проходит проверка цепочки сертификата. И при открытии сертификата на вкладке "Путь сертификации" показывается этот самый путь. Может есть какой другой способ поиска сертификата УЦ? | ||||
| ||||
При построении цепочки поиск идет по расширению "Идентификатор ключа ЦС" + проверяется подпись сертификата. Способы могут быть самые разные, например тоже построение цепочек либо перебор всех сертификатов - зависит от того, какой у Вас критерий издателя. | ||||