2

На Linux-сервере я сгенерировал свой корневой CA и клиентские сертификаты, используя следующие команды:

openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 20000 -out rootCA.pem
openssl genrsa -out myserver.key 2048
openssl req -new -key myserver.key -out myserver.csr
openssl x509 -req -in myserver.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out myserver.crt -days 365 -sha256

Я успешно установил файл rootCA.pem в Windows 7 через консоль MMC; об ошибках не сообщается; корневой сертификат указан в разделе «Доверенные корневые центры сертификации».

Когда я захожу на сайт, Internet Explorer 10 не дает мне возможность "Перейти на этот сайт", но у меня есть ключ RSA 2048 бит.

Чтобы прояснить вопрос, если по заголовку поста неясно: «как я могу заставить IE10 принять самозаверяющий корневой CA (созданный с использованием описанного метода) с 2048-битным RSA?"

Firefox на Win7 box и Chrome на linux не создают проблем, так как я добавил файл rootCA.pem в их список доверенных лиц.

Тем не менее, Chrome и IE на коробке Win7 оба создают проблемы, потому что они используют списки сертификатов Windows.

RootCA хорош, потому что Chrome в Linux и Firefox в Windows не имеют проблем с ним. И это не связано с хорошо документированной проблемой наличия RSA менее 1024 бит.

Я также добавил сервер в список «доверенных» сайтов в IE10 и до сих пор получаю проблему.

Разумеется, для каждой операционной системы Windows требуется многократный перезапуск.

Актуальное содержание rootCA:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 14306283983041559779 (0xc68a217c110d7ce3)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, ST=New York, L=New York, O=Widgets, Inc., CN=server1.widgets.com
        Validity
            Not Before: Mar 11 22:41:43 2016 GMT
            Not After : Dec 13 22:41:43 2070 GMT
        Subject: C=US, ST=New York, L=New York, O=Widgets, Inc., CN=server1.widgets.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:ef:2a:75:c1:e1:a4:07:c3:27:46:94:49:2f:2a:
                    27:0c:6d:33:d7:4c:84:ee:59:d0:83:18:10:c8:f9:
                    7e:8f:4e:19:ef:c3:6f:04:a7:a3:b2:9f:6f:03:de:
                    fb:9a:f6:17:4e:87:8c:29:93:9b:a3:52:63:19:29:
                    93:1e:cc:a0:22:fe:4e:7c:00:83:8f:82:c3:83:f1:
                    65:9d:2b:5e:b4:9e:4f:cc:29:62:a6:5f:5e:11:51:
                    99:2b:55:55:6b:17:13:6c:30:14:44:6f:a7:42:d0:
                    16:2b:02:76:5c:ae:76:4a:2b:60:b2:ea:1f:64:61:
                    09:8a:c6:9f:23:ef:85:82:c6:fb:f6:7d:ce:b4:c2:
                    a3:89:f8:98:79:f8:6a:df:6a:c5:44:75:41:f2:11:
                    7c:94:32:82:00:fd:ae:d4:ef:51:0f:7f:bc:2a:25:
                    d6:b3:53:fd:3f:13:21:7c:e0:d6:b7:87:5f:09:19:
                    79:7c:2f:cc:b1:c1:a2:49:bb:17:62:8f:e3:cd:db:
                    99:6a:2b:fc:d3:f8:9a:58:2d:0c:d0:bd:21:a1:2e:
                    64:f7:c0:84:7d:48:53:94:62:79:c4:bf:51:ba:04:
                    9e:1a:15:3e:a8:ec:3d:c2:c9:05:ed:67:dc:c0:ef:
                    6d:e0:fa:a7:0e:56:51:f7:7b:dd:1c:a4:88:f0:f4:
                    50:17
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                E9:F3:EC:16:D9:48:85:EC:29:E8:DB:8A:CD:1E:76:F2:37:9F:AA:F1
            X509v3 Authority Key Identifier:
                keyid:E9:F3:EC:16:D9:48:85:EC:29:E8:DB:8A:CD:1E:76:F2:37:9F:AA:F1

            X509v3 Basic Constraints:
                CA:TRUE
    Signature Algorithm: sha256WithRSAEncryption
         78:68:8d:e6:13:35:ba:60:05:7c:e5:c6:0e:2b:83:5c:3c:5d:
         ec:12:c2:6e:b5:a9:40:56:51:79:b2:50:75:5b:c5:88:05:71:
         27:3b:49:b0:de:16:9c:71:d2:9d:a2:84:6a:e3:91:4f:65:99:
         d3:e9:67:87:de:32:c9:d0:71:b1:8b:33:49:52:bd:be:63:bb:
         cf:7c:09:df:1e:a2:c4:62:c5:a3:74:b4:1e:13:b7:8a:7b:db:
         b7:76:36:d8:14:2c:07:b7:00:ba:9b:65:d3:22:9e:19:41:ee:
         b9:df:f5:bf:bf:76:8a:0f:68:b3:8a:09:69:ed:24:65:cc:95:
         1d:4f:05:91:20:9e:9c:7d:66:4f:57:2b:c4:c7:47:97:64:de:
         9c:10:93:30:8b:61:ea:49:5b:a7:98:fd:b7:cc:c8:8f:25:1c:
         9b:0a:49:b3:69:dc:20:dc:92:9a:01:a9:ed:9b:df:c6:65:c4:
         87:cb:07:f7:b1:53:f0:27:00:e5:d8:17:b7:0c:17:eb:6b:86:
         20:0a:97:dd:69:55:5e:02:cc:29:96:eb:64:3e:53:8c:4c:13:
         fb:10:01:e1:19:47:70:b8:54:34:b9:f1:fd:74:14:6f:e9:88:
         fb:18:13:99:31:21:f0:94:e0:b3:a1:92:ed:46:57:85:e6:33:
         b1:1d:5b:9f

Фактическое содержание сертификата сервера:

Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number: 11316521565276697315 (0x9d0c5c67f75d72e3)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, ST=New York, L=New York, O=Widgets, Inc., CN=server1.widgets.com  
        Validity
            Not Before: Mar 11 22:43:35 2016 GMT
            Not After : Mar 11 22:43:35 2017 GMT
        Subject: C=US, ST=New York, L=New York, O=Widgets, Inc., CN=server1.widgets.com 
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c8:4d:ab:c9:62:b2:a8:ab:56:30:b7:26:da:d4:
                    1a:e5:9e:eb:77:81:3e:04:62:cd:a9:d7:65:1a:f4:
                    0b:8c:b0:c4:e4:c6:e4:4c:0e:43:3f:3f:a7:67:2d:
                    a2:4b:96:54:16:b0:cc:a2:91:f0:df:f9:6c:7f:1d:
                    49:bf:8d:0b:0a:ce:1c:0b:30:8a:2a:c6:85:07:b8:
                    4e:3d:a1:52:ab:cd:7e:fa:86:b2:21:e0:f3:90:f1:
                    78:a1:96:6e:53:17:82:bb:fd:10:48:cc:87:7f:4c:
                    22:d1:79:4f:77:fe:c7:48:9b:80:b3:c9:c6:46:87:
                    1d:01:6e:ae:47:14:fd:84:ac:bd:06:44:68:17:16:
                    b5:05:76:d4:e1:76:49:65:87:bd:05:61:05:3f:5b:
                    2c:7a:e5:43:a8:89:58:95:35:ec:68:6f:66:b8:29:
                    34:ff:77:cf:2b:26:99:0e:44:d3:94:24:bd:a2:fd:
                    ed:c3:df:f4:23:31:bf:48:0c:49:1a:95:07:11:29:
                    de:1f:c3:93:e2:99:60:a5:1e:e1:3e:a1:a2:f6:41:
                    17:f8:c5:e0:3f:98:87:b2:bb:07:9b:aa:73:b0:94:
                    c3:ab:27:bb:76:5c:57:f4:3e:36:02:80:92:af:ed:
                    e0:8e:f2:61:f6:22:ba:99:d4:35:a7:40:ac:4f:e0:
                    93:2b
                Exponent: 65537 (0x10001)
    Signature Algorithm: sha256WithRSAEncryption
         c1:99:9b:b5:b2:d6:d9:c5:0d:1f:6d:db:73:34:f5:61:ea:b6:
         27:c5:d9:72:56:87:1a:60:8c:af:a4:b4:46:5c:b1:4d:cb:d6:
         21:a5:32:17:48:ea:ee:d6:cb:1e:78:cd:03:aa:16:57:09:cc:
         d2:d9:fa:b1:c1:7c:71:e2:cf:dd:32:e6:f0:cb:ca:1a:72:b0:
         79:9a:de:45:f9:f2:36:4c:d1:f4:78:e7:0c:b8:02:ac:71:07:
         d5:2a:22:90:62:ba:13:bc:2f:70:b2:b8:94:ce:e5:e3:46:b3:
         81:ac:05:25:05:76:d7:f5:74:f7:e8:11:05:ed:f0:22:1f:a5:
         a0:e7:81:2a:88:eb:5b:d3:1e:a5:bc:5b:2b:0e:b9:b1:c7:10:
         0a:d6:ec:23:a0:d5:4f:54:f8:08:e5:5a:9d:2c:3d:e6:bd:17:
         fa:7d:46:b2:33:96:5c:d7:84:47:a3:04:cf:be:e2:16:1f:f3:
         d9:df:1a:22:4a:80:ec:8b:30:72:62:2d:00:04:db:21:85:a8:
         57:7d:ff:f8:95:c9:6e:4a:d3:d8:32:f0:62:55:a1:b2:8e:88:
         dd:13:1c:ef:18:17:da:46:8b:3e:f7:cb:91:1a:84:2f:02:8a:
         8f:af:21:86:c3:f8:5c:67:ed:8d:c4:55:7c:7f:6b:98:ae:7b:
         f3:41:a7:e3

3 ответа3

2

Ваш серверный сертификат поврежден:

Version: 1 (0x0)
Serial Number: 11316521565276697315 (0x9d0c5c67f75d72e3)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, ST=New York, L=New York, O=Widgets, Inc., CN=server1.widgets.com
Subject: C=US, ST=New York, L=New York, O=Widgets, Inc., CN=server1.widgets.com 

Во-первых, Версия 1 необычна, и это должна быть Версия 3. Вам нужна версия 3 для основных ограничений и CA=false .

Во-вторых, он не сертифицирован вашим внутренним центром сертификации. Основанный на отличительных именах, он, кажется, самоподписан.

В-третьих, в нем отсутствуют имена серверов в дополнительном имени субъекта (SAN). Браузеры следуют базовым требованиям CA/Browser, и все имена серверов помещаются в SAN.

Вы никогда не помещаете имя сервера в Общее имя (CN). CN отображается для пользователя, поэтому это должно быть понятное имя "Веб-служба виджетов" (а CN для CA будет "Widgets, Inc.").

Также смотрите следующее о переполнении стека:

В обоих ответах подробно рассматриваются правила и политики выдачи IETF и CA/B. Оба также объясняют, как создавать сертификаты, которые могут быть приняты наибольшим числом пользовательских агентов.


Относительно этого утверждения:

Вы никогда не помещаете имя сервера в Общее имя (CN).

Сеть загрязнена плохим советом, когда дело доходит до CN и SAN. Не следуй этому.

Всегда следуйте:

  • CN - понятные имена («Веб-сервисы виджетов»)
  • SAN - имена серверов (widgets.example.com, ftp.example.com, mail.example.com и т.д.)

Если вы будете следовать этим двум правилам, большинство проблем с браузерами и сертификатами исчезнут. Проблемы обычно сводятся к доверию (в отличие от необъяснимых ошибок сопоставления имен).

1

Я заставил это работать, создав rootCA с именем, отличным от имени сервера, указанного в сертификате сервера. Вместо использования server1.widgets.com в качестве CN в rootCA, я использовал Widgets Dev в качестве CN. Я установил этот rootCA в окно Windows 7 через консоль MMC. Затем я создал сертификат сервера, используя server1.widgets.com в качестве CN, и установил его на сервере.

Обратите внимание, что мне не нужно было конвертировать rootCA из формата .pem для успешного импорта в окно Windows.

Полное содержание измененного rootCA ниже:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 11541727865071105011 (0xa02c7457b3ca73f3)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, ST=New York, L=New York, O=Widgets, Inc., OU=Widgets Dev, CN=Widgets Dev
        Validity
            Not Before: Mar 12 14:47:54 2016 GMT
            Not After : Dec 14 14:47:54 2070 GMT
        Subject: C=US, ST=New York, L=New York, O=Widgets, Inc., OU=Widgets Dev, CN=Widgets Dev
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:ef:2a:75:c1:e1:a4:07:c3:27:46:94:49:2f:2a:
                    27:0c:6d:33:d7:4c:84:ee:59:d0:83:18:10:c8:f9:
                    7e:8f:4e:19:ef:c3:6f:04:a7:a3:b2:9f:6f:03:de:
                    fb:9a:f6:17:4e:87:8c:29:93:9b:a3:52:63:19:29:
                    93:1e:cc:a0:22:fe:4e:7c:00:83:8f:82:c3:83:f1:
                    65:9d:2b:5e:b4:9e:4f:cc:29:62:a6:5f:5e:11:51:
                    99:2b:55:55:6b:17:13:6c:30:14:44:6f:a7:42:d0:
                    16:2b:02:76:5c:ae:76:4a:2b:60:b2:ea:1f:64:61:
                    09:8a:c6:9f:23:ef:85:82:c6:fb:f6:7d:ce:b4:c2:
                    a3:89:f8:98:79:f8:6a:df:6a:c5:44:75:41:f2:11:
                    7c:94:32:82:00:fd:ae:d4:ef:51:0f:7f:bc:2a:25:
                    d6:b3:53:fd:3f:13:21:7c:e0:d6:b7:87:5f:09:19:
                    79:7c:2f:cc:b1:c1:a2:49:bb:17:62:8f:e3:cd:db:
                    99:6a:2b:fc:d3:f8:9a:58:2d:0c:d0:bd:21:a1:2e:
                    64:f7:c0:84:7d:48:53:94:62:79:c4:bf:51:ba:04:
                    9e:1a:15:3e:a8:ec:3d:c2:c9:05:ed:67:dc:c0:ef:
                    6d:e0:fa:a7:0e:56:51:f7:7b:dd:1c:a4:88:f0:f4:
                    50:17
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                E9:F3:EC:16:D9:48:85:EC:29:E8:DB:8A:CD:1E:76:F2:37:9F:AA:F1
            X509v3 Authority Key Identifier:
                keyid:E9:F3:EC:16:D9:48:85:EC:29:E8:DB:8A:CD:1E:76:F2:37:9F:AA:F1

            X509v3 Basic Constraints:
                CA:TRUE
    Signature Algorithm: sha256WithRSAEncryption
         d0:e1:08:6b:4a:19:3e:29:06:27:fd:79:00:ed:a3:31:50:24:
         be:99:67:c7:a7:d3:4a:fa:6e:f0:a0:b6:97:67:b2:c0:ce:a9:
         4a:8c:d4:de:ee:be:9e:cb:53:33:c3:4e:ee:7a:21:e2:3d:5a:
         8d:f8:23:77:65:34:9f:f1:f7:1a:d3:c5:4b:b2:80:eb:06:22:
         4a:8c:94:86:b5:1b:db:2f:48:ab:55:5f:d3:7c:74:22:8e:dd:
         b1:64:1b:5a:ce:f5:ee:f3:10:d7:8e:28:d7:6a:35:e7:1f:9a:
         a9:9e:56:54:93:2e:a1:fb:e4:6c:88:57:56:73:f9:94:c4:96:
         bc:b7:08:4b:df:e8:80:a4:25:01:0e:07:c1:1b:68:d6:51:3f:
         5f:4e:0f:a9:22:f4:22:38:a8:d5:8b:fe:2a:19:2e:ed:0e:c0:
         c9:bd:b3:1a:49:a5:69:32:ad:54:2c:19:17:57:0d:9c:93:86:
         3e:51:77:e7:15:38:d3:90:13:7b:0e:db:75:45:1f:28:9d:ab:
         5a:90:3f:3d:6c:34:37:ca:e0:ac:fd:8e:33:03:42:00:03:c7:
         5b:9c:c1:ce:55:57:b4:67:f8:81:55:2c:9d:e6:2a:c9:44:74:
         22:4a:87:0f:fd:bf:a9:57:d5:88:79:b7:a9:a8:57:14:00:e3:
         16:af:0a:e1
0

Используйте "Управление сертификатами пользователей" или "Управление сертификатами компьютеров" (панель управления поиском) и импортируйте их в "Доверенные корневые сертификаты".

Захватить

Я думаю, что вы не можете напрямую импортировать файл .pem, попробуйте конвертировать его в .crt или в PKCS12, если вы пытаетесь импортировать ключ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .