Рейтинг:1

NET::ERR_CERT_AUTHORITY_INVALID с самозаверяющим ЦС в Windows

флаг ug

Я создал (самозаверяющий) корневой сертификат и подписал сертификат веб-сервера, используя систему, которую я разработал на Java (веб-сертификат используется в Apache 2.4.41).

Сертификаты работают без проблем в Linux и Mac (проверено в разных браузерах Webkit и Firefox). Сертификат и оценка настройки сервера А+ с использованием тестыsl.sh.

Сертификат ЦС правильно установлен без каких-либо предупреждений, но не принят (по-прежнему отображается предупреждение в виде красного треугольника и NET::ERR_CERT_AUTHORITY_INVALID ошибка) в Windows (проверено на двух устройствах с Windows 10, одно из которых установлено заново). Протестировано в Chrome, Edge и Firefox.

Я пробовал много вещей:

  • установка их с помощью certlm.msc, certutil.exe, через настройки или двойным щелчком по файлам
  • либо локальная, либо пользовательская область
  • перегенерация корневого сертификата с другими настройками
  • изменение настроек апача
  • перезапуск браузеров и компьютеров
  • остановка антивирусного ПО

Я читал связанные вопросы на этом сайте (похоже, никто не исправляет это), и я искал решения на других сайтах, но безуспешно.

Это фальшивый Сертификат CA, сгенерированный той же системой (с теми же настройками, за исключением длины ключа здесь 1024, чтобы уменьшить размер этого поста):

Ключ и сертификат:

-----НАЧАТЬ ЗАКРЫТЫЙ КЛЮЧ-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgeEAAoGBAJg/x+BCM0xGDiaC
qc5h+83wrjZ/HVxaZ7GHK7g/sca4fvF1KQuADqx+iDfehxNpZ5hCjmAsgBgWkIbc
E0Md/C6srSRWS4/EeoAPRgFJK2k5SNC0L1QII0DKc0xS7y9CRqcoPFWUt7ncUeuw
RZGmDMYbNiqcamgjCWfnIPRB7kgVAgMBAAECgYBD4FuaDamVHb59SM+vpVt/ywfA
YBeU7vE/4oWJVUxKzkI6IAO2jtb77EWKsvkBnIKFDVcwZWaOVrEEjuU/jQS6jvRU
Ozwbvo4o9UhkxzEhNuREE7d0cs3RSzWBJ1u5PMYT8G7GXsIP22HgRD2XP86VBfSf
TWAqKcfNWpNFtlA/wQJBAPAPULdIEvfO2e3VDNB/5Li50Et7jd8fzBU9B7U0Axus
keuS3oer+zeA2nXinfd7rwFEyZN3tSUsU/8oQwlOzCkCQQCiW84xVNccCPcucwWu
2nEagbFcYyouh/Ml5fR00uBgA8K27y8NHLgzNuqob1zqW7TgsmgCYaTnPbol0t/I
29ONAKEAviQTVaiTxY4klTmL1dWHDz22GyN44sLnvebCJSdWUuQkDAgflCyHZZX8
8ySU5EImAoY+dzx40UHEIjT8q/GqyQJAXZMkB/Kp+BKCxFau09Q6k9hj7KeKzD62
uQUMG7jecPg55U19hMUktP/VxzZICxrH6SlqINU+Qbil7N7Y898ikQJAacFKaTdU
2VmKAT1WaO6DPNmwhJ72a4cTAol9y79CFndjrTtGSENJwseqTgPTr+LtRBq3S+nZ
r5a1qsB0bzNGvg==
-----КОНЕЦ ЗАКРЫТОГО КЛЮЧА-----

-----НАЧАТЬ СЕРТИФИКАТ-----
MIIC1zCCAkCgAwIBAgIIX2TQo7pcNcQwDQYJKoZIhvcNAQELBQAwgYsxFzAVBgNV
BAMMDkZha2UgQXV0aG9yaXR5MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExCzAJ
BgNVBAcMAkxBMRQwEgYDVQQKDAtFeGFtcGxlIExURDENMAsGA1UECwwETm9uZTEk
MCIGCSqGSIb3DQEJARYVd2VibWFzdGVyQGV4YW1wbGUuY29tMB4XDTIxMTExMDIX
MDY1M1oXDTIyMTExMDE1MDAwMFowgYsxFzAVBgNVBAMMDkZha2UgQXV0aG9yaXR5
MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExCzAJBgNVBAcMAkxBMRQwEgYDVQQK
DAtFeGFtcGxlIEXURDENMAsGA1UECwwETm9uZTEkMCIGCSqGSIb3DQEJARYVd2Vi
bWFzdGVyQGV4YW1wbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCY
P8fgQjNMRg4mgqnOYfvN8K42fx1cWmexhyu4P7HGuH7xdSkLgA6sfog33ocTaWeY
Qo5gLIAYFpCG3BNDHfwurK0kVkuPxHqAD0YBSStpOUjQtC9UCCNAynNMUu8vQkan
KDxVlLe53FHrsEWRpgzGGzYqnGpoIwln5yD0Qe5IFQIDAQABo0IwQDAPBgNVHRMB
Af8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQURaB83qfjI0wv+tvJ
myfInKagSgswDQYJKoZIhvcNAQELBQADgYEAYQ2PvvfQSe9WtG6peJ4B52bG1Mzs
U+jE9xc4oWEfvekkpjOkZ4dbk89gBVeAZsSxdffcQfFPyRKE9vubYrd9xuemUAGE
51ZyMqJWMawFRxtXdV1e6a1OTH1qKks61obwtRuRBOweoUW4KrOSgCLB3VhmXKVe
YJiVhpvJCxzi/MI=
-----КОНЕЦ СЕРТИФИКАТА-----

Сводка ЦС

Версия: 3
         Серийный номер: 6873848332899071428
             DN эмитента: CN=Fake Authority,C=US,ST=CA,L=LA,O=Example LTD,OU=None,[email protected]
           Дата начала: Чт, 11 ноября, 06:06:53 JST 2021 г.
           Дата окончания: пятница, 11 ноября, 00:00:00 по японскому стандартному времени 2022 г.
            SubjectDN: CN=Fake Authority,C=US,ST=CA,L=LA,O=Example LTD,OU=None,[email protected]
           Открытый ключ: открытый ключ RSA [b8:07:ef:1f:8e:91:c0:ab:12:db:38:3f:76:e7:0a:7f:21:9d:fe:49],[56] :66:d1:a4]
        modulus: 983fc7e042334c460e2682a9ce61fbcdf0ae367f1d5c5a67b1872bb83fb1c6b87ef175290b800eac7e8837de8713696798428e602c8018169086dc13431dfc2eacad24564b8fc47a800f4601492b693948d0b42f54082340ca734c52ef2f4246a7283c5594b7b9dc51ebb04591a60cc61b362a9c6a68230967e720f441ee4815
публичный показатель: 10001

  Алгоритм подписи: SHA256WITHRSA
            Подпись: 610d8fbef7d049ef56b46ea9789e01e766c6d4cc
                       ec53e8c4f71738a1611fbde924a633a467875b93
                       cf6005578066c4b175f7dc41f14fc91284f6fb9b
                       62b77dc6e7a6500184e7567232a25631ac05471b
                       57755d5ee9ad4e4c7d6a2a4b3ad686f0b51b9104
                       ec1ea145b82ab3928022c1dd58665ca55e609895
                       869bc90b1ce2fcc2
       Расширения: 
                       критическое (истинное) BasicConstraints: isCa (истинное)
                       критический (истинный) KeyUsage: 0x6
                       критическое (ложное) 2.5.29.14 значение = МЭД

Сертификат сервера

-----НАЧАТЬ ЗАКРЫТЫЙ КЛЮЧ-----
MIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgeEAAoIBAQCMzMPwSTHQTaxu
rtfnFFVXLXnDOkolG2iuA4H7KkPrizZ24vloFCU353wsT2YVJ9ykIw+Y58vXqEw8
QjlhOHMRMetWeaEMH562uhakb8S+KArQN7SZh9vw7TF7OwiCIg/sWcle87j9ETSn
NtZ4M0HMQ+s+AOX0jDLDWAW08wXk0hXAOHMvaaqnC3NoI94/joQoElctaCpUhrov
kmmDIrJHufplUtMdJrqkzhrUfzKHkslTBLeTHAHHgNdX45JjYibZlqVY3rLns9NI
DIN199ciAnJpqSlvp65SMLJUMFFp2kWK0/S8gnTo41QjcGMBNYR4KiGAPmZPzjaR
QFw9G8mdAgMBAAECggEAWUQhHaBqMpRsNCgpvdmIWaL9RacZBvmfnmOe7uxW72jt
eOZiFXhgOFdMxJL6N4N0QaPw6ZJcDDgpTTL3SgoN+eLaP5MRZaxOZa8JV+t8osqk
QGpw173o1ZCsBGLi/A44ZjJulwKST++uoC0GQGLO3oBZDpBnOmoAbRTLWXOSUwVe
pFyWB/5VYtBKAaTwd8MmoNuTCL9o1CGutBHsaUCglnHv/Z2Ar7JLJaiDPEu2/kSe
H/5YroI6L1FF8X0TsCpcxOiMOW/eFzW6TDrbo/kggHRnVRGjoM+rPr8E7nKYlNks
whQI2aA2pcazWoBBwzYyscD7jXQJfKNNZQ3pun1aQQKBgQDzBeanFuzZmYcVjfq3
QmWydKIIMyn+FuqiXhP1Hs9sRcsFS+FfG4RfZJXJNpJ+4NaAOgTyvofpmZ0g6M6a
M5heae+Hhl/942xzcUqpiK3pJ0YaRy/aluo33O6tyDXAmvPqLBkJO0EfOneBHaAe
KjVm3vK8xvf+fpE022rm36AU+QKBgQCUUXwDAEvWpwhlrWlzT2b1iONKWsZNV3vd
Uy83zqZXJ2P+biaz9xFaNCiKXo5ziZU1XZVPg8+rYv2R3kxtAjgjNUwxr6vF/ZBs
2gpLy0YhoCjk/xcIIAFldna/a7vTUPDSNn4HWxkjEqgMu+GEzyngjZkm8sY7v3bi
oXgPtuBWxQKBgQDkzVt5WQYpYHhj/MZdn2+r8k9TNQiGJwFFWRmlIBrdr2ATXnuT
VY7tWQAE7xJBzmFlXDqoaGYBsxTSlR1e5NDBoy9XA1aA7IuArNtEfmBuMQG5X+hX
/toJOkKk7uhcrAaVJGt124nWYu98am4DuG2KqsESpql5u6Puhd5B+6z10QKBgCT1
hSyOR1eu+dW0d8GHOMXYnaLqqd2d/jyxvONwOF0hcLZ3JmfUGlvbAXsxgtfhoe/R
ASKOWxJ/MWbG+U50rh5/6oO7HdfRjsrBLq2ictBwQ6CEvG2G5DIvafnbU8udsNUB
RTh6B/KIdJ3vt4vLv8i4IEDnYGSFGo/w4qUv0gltAoGACLthSVxyNdZCX/21WRdq
ТГцdUqV39gkaNVJdT10UQжзMZSBchoiSDSNha33XEwJqr3UivAuYeAqTeRI6jdr
7BBjXjQ0d3OhtgwqL2AHHzudzYhvSoUmPgfJ1YWeJvUVzGDowz5z6HEjc637GZU4
+ph1ewJMz75BlRZjT7kfi5o=
-----КОНЕЦ ЗАКРЫТОГО КЛЮЧА-----

-----НАЧАТЬ СЕРТИФИКАТ-----
MIIDvTCCAyagAwIBAgIIXETyGvtei7MwDQYJKoZIhvcNAQELBQAwgYsxFzAVBgNV
BAMMDkZha2UgQXV0aG9yaXR5MQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExCzAJ
BgNVBAcMAkxBMRQwEgYDVQQKDAtFeGFtcGxlIExURDENMAsGA1UECwwETm9uZTEk
MCIGCSqGSIb3DQEJARYVd2VibWFzdGVyQGV4YW1wbGUuY29tMB4XDTIxMTExMDIX
MDgzN1oXDTIyMTExMDE1MDAwMFowgYgxGTAXBgNVBAMMEGZha2UuZXhhbXBsZS5j
b20xCzAJBgNVBAYTALVTMQswCQYDVQQIDAJDQTELMAkGA1UEBwwCTEExFDASBgNV
BAoMC0V4YW1wbGUgTFREMQ0wCwYDVQQLDAROb25lMR8wHQYJKoZIhvcNAQkBFhBm
YWtlQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
jMzD8Ekx0E2sbq7X5xRVVy15wzpKJRtorgOB+ypD64s2duL5aBQlN+d8LE9mFSfc
PCMPmOfL16hMPEI5YThzETHrVnmhDB+etroWpG/EvigK0De0mYfb8O0xezsIgiIP
7FnJXvO4/RE0pzbWeDNBzEPrPgDl9Iwyw1gFtPMF5NIVwDhzL2mqpwtzaCPeP46E
KBJXLWgqVIa6L5JpgyKyR7n6ZVLTHSa6pM4a1H8yh5LJUwS3kxwBx4DXV+OSY2Im
2ZalWN6y57PTSAyDdffXIgJyaakpb6euUjCyVDBRadpFitP0vIJ06ONUI3BjATWE
eCohgD5mT842kUBcPRvJnQIDAQABo4GmMIGjMAwGA1UdEweB/wQCMAAwHwYDVR0j
BBgwFoAUx90O8ddg/Fo/lTlIjapK58YMBCEwDgYDVR0PAQH/BAQDAgOoMEMGA1Ud
EQQ8MDqBEGZha2VAZXhhbXBsZS5jb22CEGZha2UuZXhhbXBsZS5jb22CFHd3dy5m
YWtlLmV4YW1wbGUuY29tMB0GA1UdDgQWBBTH3Q7x12D8Wj+VOUiNqkrnxgwEITAN
BgkqhkiG9w0BAQsFAAOBgQCI3Ri0d6W6ETohRaGKLSqH5SDf//g0C9t2rp2ox8po
BjuAMlPHtRn6bfMC6xIsqznjDYZSni2YEMf6YBLivimbo9rYC18E/I5u5KsqvIa+
ze5VZd5U7O8+4+8Uaf+R/Re4gdf7eJ3j02iP4d8wKevfUfD8Vcuddx9mrWqluCEZ
КК==
-----КОНЕЦ СЕРТИФИКАТА-----

Сводка сертификата

Версия: 3
         Серийный номер: 6648705147606043571
             DN эмитента: CN=Fake Authority,C=US,ST=CA,L=LA,O=Example LTD,OU=None,[email protected]
           Дата начала: Чт, 11 ноября, 06:08:37 JST 2021 г.
           Дата окончания: пятница, 11 ноября, 00:00:00 по японскому стандартному времени 2022 г.
            SubjectDN: CN=fake.example.com,C=US,ST=CA,L=LA,O=Example LTD,OU=None,[email protected]
           Открытый ключ: открытый ключ RSA [2e:cd:8e:16:02:6f:b3:27:16:01:21:cb:1a:2b:9b:27:18:71:86:87], [56]. :66:d1:a4]
        modulus: 8cccc3f04931d04dac6eaed7e71455572d79c33a4a251b68ae0381fb2a43eb8b3676e2f968142537e77c2c4f661527dca4230f98e7cbd7a84c3c42396138731131eb5679a10c1f9eb6ba16a46fc4be280ad037b49987dbf0ed317b3b0882220fec59c95ef3b8fd1134a736d6783341cc43eb3e00e5f48c32c35805b4f305e4d215c038732f69aaa70b736823de3f8e842812572d682a5486ba2f92698322b247b9fa6552d31d26baa4ce1ad47f328792c95304b7931c01c780d757e392636226d996a558deb2e7b3d3480c8375f7d722027269a9296fa7ae5230b254305169da458ad3f4bc8274e8e354237063013584782a21803e664fce3691405c3d1bc99d
публичный показатель: 10001

  Алгоритм подписи: SHA256WITHRSA
            Подпись: 88dd18b477a5ba113a2145a18a2d2a87e520dfff
                       f8340bdb76ae9da8c7ca68063b803253c7b519fa
                       6df302eb122cab39e30d86529e2d9810c7fa6012
                       e2be299ba3dad80b5f04fc8e6ee4ab2abc86becd
                       ee5565de54ecef3ee3ef1469ff91fd17b881d7fb
                       789de3d3688fe1df3029ebdf51f0fc55cb9d771f
                       66ад6аа5б8211929
       Расширения: 
                       критическое (истина) BasicConstraints: isCa (ложь)
                       критическое (ложное) 2.5.29.35 значение = последовательность
    Отмечен [0] НЕЯВНОЕ 
        Строка октетов DER[20] 

                       критическое (истинное) использование ключа: 0xa8
                       критическое (ложное) 2.5.29.17 значение = последовательность
    Отмечен [1] НЕЯВНОЕ 
        Строка октетов DER[16] 
    Отмечен [2] НЕПРЯМОЙ 
        Строка октетов DER[16] 
    Отмечен [2] НЕПРЯМОЙ 
        Строка октетов DER[20] 

                       критическое (ложное) 2.5.29.14 значение = МЭД

Что не так с моей настройкой?

флаг us
По крайней мере, Chrome использует собственное доверенное хранилище сертификатов в Windows: https://stackoverflow.com/questions/7580508/getting-chrome-to-accept-self-signed-localhost-certificate
lepe avatar
флаг ug
@TeroKilkanen, спасибо. Я видел этот пост ранее, хотя я не пробовал все решения там. Я посмотрю еще раз.
lepe avatar
флаг ug
@garethTheRed Инструмент находится на стадии тестирования. В Linux и Mac сертификаты работают нормально. Возможно, то, что вы говорите, может касаться только Windows? Я не знаю, почему ключ тот же. Позвольте мне проверить, если я не сделал ошибку, публикуя здесь.
lepe avatar
флаг ug
@garethTheRed хороший улов. Да, действительно, это один и тот же ключ. Позвольте мне проверить мой код и посмотреть, почему это происходит.
lepe avatar
флаг ug
@garethTheRed это была ошибка в инструменте.Он хранил сертификаты в хранилище, используя «закрытый ключ root» вместо «закрытый ключ сервера». Я исправил это, спасибо!. Однако это все еще терпит неудачу в Windows. Не могли бы вы подробнее объяснить проблему с `autorityCertIssuer`? Как это должно выглядеть? (Я обновил вопрос новыми ключами и сертификатами).
флаг cn
Много информации здесь. Чего не хватает, так это фактического отображаемого сообщения об ошибке: «Целостность этого сертификата не может быть гарантирована. Сертификат может быть поврежден или изменен». Существует много способов успешно создать самозаверяющий сертификат без использования сторонних инструментов. Если вы разрабатываете другой собственный способ, возможно, вам будет полезно Stack Overflow.
lepe avatar
флаг ug
@GregAskew В деталях предупреждения объясняется только то, что сертификат не является доверенным, поскольку его нет в списке доверенных. Кроме этой информации больше нет. Я также пытался использовать только команды openssl, но результат был таким же.
lepe avatar
флаг ug
@garethTheRed Я очистил хранилище сертификатов машины от старых сертификатов, перезапустил браузер и даже пробовал с разными доменами. Насчет «Ключа полномочий» вы правы. В моем случае они разные. Я посмотрю на это.
lepe avatar
флаг ug
@garethTheRed Да! в этом была проблема. Я обнаружил в своем коде, что «Ключ авторизации» использует «открытый ключ» из сертификата сервера вместо корневого сертификата. Можете ли вы обобщить свои комментарии в ответе, чтобы я мог его принять? Так что Linux и Mac не проверяют это... интересно.
Рейтинг:1
флаг br

Есть две проблемы с сертификатами, размещенными в вопросе:

  1. Оба сертификата используют один общий ключ. Поскольку сертификат должен привязывать ключ к своему владельцу (субъекту), на самом деле не имеет смысла использовать один ключ для двух субъектов.
  2. Как следствие вышеизложенного, хэши идентификатора ключа субъекта и идентификатора ключа органа одинаковы для обоих сертификатов.

Обратите внимание, что у вас также есть довольно сложный идентификатор ключа авторизации в сертификате конечного объекта. Обычно здесь используется только хэш, скопированный непосредственно из идентификатора ключа субъекта сертификата ЦС, выдавшего сертификат. То есть пропустите записи Directory и Serial. То, что у вас есть, может сработать, но зачем рисковать?

Рейтинг:0
флаг pw

Сертификат, подписанный вашим собственным фиктивным центром сертификации, всегда будет вызывать ошибки, поскольку ваша система не доверяет ЦС. Чтобы получить зеленый замок, вы должны добавить самоподписанный сертификат вашего центра сертификации в хранилище доверенных корневых центров сертификации на компьютере.

Даже если вы доверяете своему фиктивному ЦС на своей машине, сертификат, подписанный этим ЦС, не будет доверять другим машинам в Интернете. Если вы хотите, чтобы другие компьютеры доверяли вашему сертификату, вы должны заплатить законному центру сертификации, чтобы он подписал ваш сертификат для вас.

Если ваш ЦС уже правильно установлен в доверенных корневых ЦС и фактическая длина вашего ключа составляет 1024, он может быть слишком слабым, чтобы ему можно было доверять. Попробуйте перегенерировать его с длиной не менее 2048, так как время от времени браузеры не рекомендуют более короткие длины ключей.

lepe avatar
флаг ug
Ваш ответ является общей рекомендацией, которая не относится к вопросу: 1. «Зеленый замок» никак не ожидался. 2. Доверие других машин в Интернете никогда не было здесь целью. 3. Длина ключа не была проблемой (поскольку настоящие ключи были 4K, а в качестве примера использовался только 1K). Я рекомендую вам внимательно прочитать вопрос и ответить только в том случае, если он применим, иначе ваш ответ будет отклонен. Пожалуйста, исправьте свой ответ или удалите его.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.