Могу ли я повторно использовать SSL CSR?

21

Я создал собственный сертификат SSL для тестирования нового веб-сайта. Пришло время запустить сайт в эксплуатацию, и теперь я хочу приобрести сертификат у GeoTrust. Могу ли я использовать тот же CSR, который я сгенерировал для self-cert, или мне нужно создать новый?

Богатый

kim3er
источник

Ответы:

19

Если вы используете один и тот же ключ, домен (он же общее имя), контактные данные и срок действия, вы сможете использовать один и тот же CSR.

Хотя, если честно, создание CSR - довольно простая работа, поэтому, если вам нужно изменить контактную информацию (к которой строго относятся многие провайдеры SSL), это не имеет большого значения.

Coops
источник
1
Я согласен. Генерация CSR - такая тривиальная задача, я не понимаю, зачем вам пытаться использовать ее повторно.
Joeqwerty
5
После установки OpenSSL вы можете сгенерировать новый CSR примерно за 30 секунд. И если вы думаете, что это займет у вас гораздо больше времени, то определенно сделайте это, потому что вам нужна практика !!!!!
Остин '' Опасность '' Пауэрс
1
Не применимо к случаю OP, но если вы хотите использовать закрепление сертификатов, более практично использовать тот же CSR, чем обновлять приложения на стороне клиента.
черный
Если ключ, домен и данные совпадают, CSR будет идентичным.
серый
11

Для вашего примера, я не думаю, что стоит пытаться повторно использовать CSR. Однако для большой разнообразной команды разработчиков Apple iOS (как и у меня) есть веская причина сделать это. Мы создаем (на самом деле, просим Apple создать) все наши сертификаты подписи и выдвигаем сертификаты с одного и того же закрытого ключа. Таким образом, мы можем легко сотрудничать в наших более чем 85 приложениях. По этой причине мы храним один CSR и всегда используем один и тот же, пока ключ действителен.

Насколько я знаю, нет причин многократно генерировать CSR из одного закрытого ключа. Я бы хотел, чтобы меня поправили, если я ошибаюсь.

Бруно Броноски
источник
6
Прошло 4 года без коррекции. Я думаю, я не ошибаюсь.
Бруно Броноски
5

Основным преимуществом наличия сертификатов с ограниченным сроком действия является уменьшение ущерба в случае утечки вашего личного ключа. Кто-то, обладающий закрытым ключом, может иначе выдать себя за вас навсегда, если вы повторно используете CSR, потому что повторное использование CSR подразумевает также повторное использование вашего закрытого ключа.

Пожалуйста, не делайте этого, лучше автоматизировать генерацию как закрытых ключей, так и CSR, и найти удобные способы распространения постоянно меняющихся закрытых ключей на серверы сборки приложений и push-серверы. Большинству простых разработчиков, как правило, никогда не понадобится делать сборку релизов / дистрибутивов для магазина приложений, так что им не понадобятся закрытые ключи.

Стефан Л
источник
1
Хотя верно, что «повторное использование CSR подразумевает также повторное использование вашего закрытого ключа», это не означает, что «выдавать себя за вас навсегда, если вы повторно используете CSR». Если вы решите использовать ключ в течение N месяцев, то можно использовать тот же CSR для этих N месяцев.
Бруно Броноски
2
Да, ты прав, Бруно. Я предположил, что люди, повторно использующие КСО, сделали это по незнанию и, таким образом, продолжили эту практику «навсегда», однако, конечно, могут быть некоторые, кто знает об этих проблемах и делает это на основе тщательного планирования в течение ограниченного времени.
Стефан Л
1

Вы можете теоретически повторно использовать один и тот же CSR, так как это всего лишь контейнер для

  • ваш открытый ключ (только числа, используемые для шифрования RSA (специальные математические))
  • Ваши "предметные" данные (кто вы, какой домен и т. д.) Текст, используемый для идентификации владельца этого открытого ключа

Это то, что сертификат (сокращение от PublicKey Certificate) в конце концов

Но, как отмечалось в других ответах, целесообразно регулярно менять закрытый ключ, чтобы получить новый сертификат и новый CSR.

Вы можете легко посмотреть на содержание CSR

например

$ openssl req -new -batch -subj "/CN=My Common Name/OU=My Org Unit/O=My Organisation" -sha256 -newkey rsa:2048 -keyout private.key -nodes -out request.csr
Generating a 2048 bit RSA private key
.............................................................................................+++++
.........+++++
writing new private key to 'private.key'
-----

$ ls
private.key  //  keep that private, the PublicKey side is easily be generated from this
request.csr // your PublicKey + Subject details

КСО

$ openssl req -in request.csr -text -noout
Certificate Request:
    Data:
        Version: 1 (0x0)
        Subject: CN = My Common Name, OU = My Org Unit, O = My Organisation
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:                    ///////// Matches the PrivateKey modulus
                    00:b1:e8:de:e6:bf:21:45:51:75:15:23:5e:6e:7a:
                    7d:95:53:e5:d5:ec:5b:38:cd:7f:38:2d:53:8a:54:
...
                    fe:b5:78:de:9b:c1:ee:c1:51:6f:fd:fb:0e:62:09:
                    03:87
                Exponent: 65537 (0x10001)   ///////// Matches the PrivateKey publicExponent
        Attributes:
            a0:00
    Signature Algorithm: sha256WithRSAEncryption
         a1:44:1f:b2:ec:c0:82:bc:99:da:69:ce:3e:77:9f:46:51:95:
...
         3b:2d:84:e3:73:ac:be:c8:da:29:fd:62:90:11:dd:8a:a6:4f:
         7b:f8:ac:f1

И PrivateKey

$ openssl rsa -in private.key -text -noout
// all the below are numbers that takes part in Mathematical encryption (search for RSA maths)
RSA Private-Key: (2048 bit, 2 primes)

// The Numbers that can be freely published
modulus:
    00:b1:e8:de:e6:bf:21:45:51:75:15:23:5e:6e:7a:
    7d:95:53:e5:d5:ec:5b:38:cd:7f:38:2d:53:8a:54:
...
    fe:b5:78:de:9b:c1:ee:c1:51:6f:fd:fb:0e:62:09:
    03:87
publicExponent: 65537 (0x10001)

// The Numbers that must be kept private !
privateExponent:
    0a:81:73:d8:30:65:28:90:bc:d7:38:b5:74:d4:aa:
...
    b1:9b:30:2e:a2:dd:46:c1:10:0f:b0:da:ac:b6:ea:
    01
prime1:
    00:e0:28:01:87:95:70:d0:b8:21:07:e0:4f:96:a6:
...
    66:28:8f:3d:d7:eb:e6:b4:81
prime2:
    00:cb:2e:fe:1b:b6:30:ea:8d:9e:6d:23:83:d8:b6:
...
    4d:64:39:5c:9c:18:a0:14:07
exponent1:
    22:e2:36:f2:b9:af:f7:db:5f:d0:90:f8:f1:d1:ff:
...
    3a:31:a8:87:2c:c0:17:81
exponent2:
    5a:8b:3d:77:f1:ef:c8:86:85:a4:13:20:8d:31:a4:
...
    a5:ba:1e:37:fd:8d:50:7f
coefficient:
    00:d3:d3:b6:81:4b:a9:c2:aa:ff:e1:07:cb:de:ea:
...
    5c:e9:3b:d3:f7:67:82:c3:7f
Julien
источник