Как создать файл csr для azure веб-приложения

Мне нужно создать файл csr, чтобы передать его кому-то.

Файл csr предназначен для сертификата SSL для лазурного веб-приложения.

Когда я google, я нахожу противоречивую информацию о , где, чтобы сгенерировать файл csr.

Некоторые источники говорят: мне нужно создать файл csr на сервере, на котором запущено веб-приложение.

В моем случае сервер на лазури неизвестен. Я ничего не могу запустить там...

Или это нормально для создания csr на моем локальном компьютере со всеми данными компании + тема, заполненная пользовательским доменом?

Ответ 3

openssl установлен в консоли, вы можете сгенерировать там файлы. Вам нужно будет указать все параметры, необходимые в исходной команде, в openssl, потому что он должен вызывать вопросы, но в настоящее время он не работает. Так что-то вроде этого:

openssl req -new -newkey rsa:2048 -nodes -out yoursite_com.csr -keyout yoursite_com.key -subj "/C=US/ST=California/L=San Francisco/O=Your Site Inc./OU=Engineering/CN=yoursite.com"

После того, как у вас есть csr, вы не можете открыть его с консоли, вам действительно нужно использовать Kudu (нажмите "Дополнительные инструменты" ), чтобы открыть файл и скопировать содержимое.

Ответ 4

Вместо того, чтобы делать это вручную, необходимо выполнить поиск дополнительных сервисов для "Службы сертификатов приложений", которая предоставит вам мастер для покупки SSL-сертификата, а затем привяжет его к вашему приложению. Это намного проще и быстрее, чем создание CSR вручную, и это намного менее запутанно. Документация была многословной, и на самом деле не было ясно, нужно ли нам удалять сервер и создавать CSR там и т.д., Поэтому я настоятельно рекомендую сделать это через службу сертификатов приложений.

Ответ 5

Другие предоставили ценную информацию по этим фактам:

  • Чтобы вы могли (и в случае Azure Web App, в основном, должны) генерировать CSR на другой машине, чем целевой сервер (тот, который будет использовать сертификат).
  • Инструменты, которые вы можете использовать для создания CSR (например, openssl, утилита DigiCert).
  • Альтернативный способ получения сертификата для Azure Web App (Azure App Certificate Service).

Возможно, я что-то пропустил, но не вижу ответов:

  • Почему вы хотите (или даже должны) генерировать CSR на целевой машине?
  • Почему бы вам не на самом деле?

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

Хотя пара ключей обычно генерируется с использованием энтропийных данных на основе аппаратного обеспечения, поэтому для машины, которую вы используете, результат (пара ключей) может использоваться где угодно, так как значения ключа только математически связаны с каждым Другие. Содержимое CSR основано на открытом ключе и предмете запрашиваемого сертификата, так что опять-таки там ничего нет, чего нельзя использовать в другом месте. Это объясняет, почему нет технических ограничений на фактическое создание CSR (и ключей) на другой машине/службе, чем тот, который фактически будет использовать его, поэтому вопрос номер 2 будет рассмотрен.

Ответ на вопрос номер 1 исходит из ключевой функции закрытого ключа, который генерируется в процессе. Эта важная особенность заключается в том, что она должна оставаться частной. Идеальным является только единственный пользователь удостоверения подлинности, который может его использовать. Этот "пользователь" будет целевой услугой (веб-сервером). Когда вы создаете ключ в другом месте, вы несете ответственность за его защиту в этой среде и в пути к цели. Это часто является ненужным риском. Предлагаемое решение часто генерирует ключ в целевом хранилище сертификатов/ключей с защитой секретного ключа, что предотвращает извлечение (экспорт) частного ключа из хранилища. Даже целевая служба (веб-сервер) фактически не сможет извлечь/прочитать ее (но сможет ее использовать). Поскольку пара ключей генерируется в процессе создания КСО, это означает, что этот процесс должен выполняться там, где это хранилище, и этими функциями магазина. Это должно ответить на этот вопрос. В качестве дополнительной заметки инструмент DigiCert, а также интерфейс менеджера IIS используют хранилища сертификатов Windows, которые добавляют уровень защиты для закрытого ключа, но они отмечают ключ как экспортируемый, что позволяет извлекать ключ. Средство OpenSSL (в Windows) генерирует ключ за пределами хранилищ сертификатов Windows (в виде файлов), поэтому вы можете легко получить к нему доступ, что не так безопасно.

Я нашел эту статью: https://www.namecheap.com/support/knowledgebase/article.aspx/9854//how-to-generate-a-csr-code-on-a-windowsbased-server-without-iis-manager, в которой упоминаются 3 дополнительных способа/инструментов для генерации CSR, где первый (с помощью оснастки "Сертификаты" в Microsoft Management Console) на самом деле позволяет вам пометить закрытый ключ как не экспортируемый.

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