bg-tutorials

Как создать код CSR на серверах Oracle

Это руководство показывает, как сгенерировать CSR (запрос на подпись сертификата) на серверах Oracle. Оно охватывает три продукта Oracle, где CSR создаётся локально: Oracle Wallet Manager (или современную команду orapki), Oracle iPlanet Web Server и Oracle WebLogic Server (Java keytool). Выберите раздел, соответствующий вашему продукту, выполните шаги, а затем отправьте CSR в вашу Certificate Authority.

Генерация CSR в Oracle Wallet Manager

Если вы уже сгенерировали свой CSR, переходите сразу к разделу установка SSL-сертификата на Oracle. В противном случае у вас есть два варианта в Oracle Wallet Manager: графический интерфейс Oracle Wallet Manager (OWM) или современная утилита командной строки orapki, поставляемая с продуктами Oracle. Путь через orapki поддаётся автоматизации и является вариантом, который Oracle рекомендует для текущих развёртываний; OWM по-прежнему поддерживается для тех же операций.

Вариант А: Oracle Wallet Manager (графический интерфейс)

  1. Откройте Oracle Wallet Manager. Если у вас ещё нет кошелька (wallet), выберите Wallet > New, задайте надёжный пароль и сохраните его.
  2. В главном меню выберите Operations > Add Certificate Request.
  3. В диалоговом окне заполните данные запроса сертификата точно в соответствии с тем, как ваша организация юридически зарегистрирована:
    • Common Name (CN): полное доменное имя, которое вы хотите защитить, например www.yourdomain.com, или wildcard, например *.yourdomain.com. Не вводите имя человека.
    • Organizational Unit (OU): публичные CA больше не выпускают это поле. Оставьте пустым.
    • Organization (O): полное юридическое название вашей компании, например Your Company LLC. Для DV (Domain Validation) сертификатов это поле можно оставить пустым.
    • Locality / City (L): полное название города, где зарегистрирована ваша компания, например Seattle. Не используйте сокращения.
    • State / Province (ST): полное название штата или региона, например Washington. Не используйте двухбуквенный код.
    • Country (C): двухбуквенный код страны по ISO, например US, GB, DE.
    • Key Size: 2048 бит — текущий публичный минимум. Кошельки Oracle предлагают 512, 1024, 2048, 4096 и более, без опции 3072, поэтому следующий шаг вверх здесь — 4096.
  4. Нажмите OK. Появится окно подтверждения об успешной генерации CSR. Узел сертификата в навигационном меню кошелька теперь показывает статус Certificate: [Requested].
  5. Вернувшись к виду кошелька, выберите Operations > Export Certificate Request, задайте имя файла (например, yourdomain.csr) и сохраните его. Не закрывайте и не удаляйте кошелёк: теперь он содержит закрытый ключ, парный с этим CSR.

Примечание: графический интерфейс Oracle Wallet Manager не предоставляет отдельного поля для Subject Alternative Name (SAN). Современные браузеры и клиенты TLS проверяют сертификаты по расширению SAN, а не по Common Name, поэтому укажите все необходимые имена хостов (например, yourdomain.com и www.yourdomain.com) в поле SAN формы заказа вашего Certificate Authority. CA добавит их в выпущенный сертификат. Если вы используете командную строку orapki (Вариант Б ниже), вы можете встроить SAN напрямую в CSR с помощью флага -addext_san.

Вариант Б: orapki (командная строка)

Утилита orapki поставляется с продуктами Oracle (в дистрибутивах базы данных, Fusion Middleware и HTTP Server) и является альтернативой OWM, поддающейся автоматизации. Процесс состоит из двух команд: создание кошелька и пары ключей, затем экспорт CSR.

Создайте кошелёк с автоматическим входом (auto-login) и добавьте пару ключей:

orapki wallet create -wallet /etc/oracle/wallet -auto_login -pwd "YourStrongPassword"

orapki wallet add -wallet /etc/oracle/wallet 
  -dn "CN=www.yourdomain.com, O=Your Company LLC, L=Seattle, ST=Washington, C=US" 
  -keysize 2048 
  -addext_san "DNS:yourdomain.com,DNS:www.yourdomain.com" 
  -pwd "YourStrongPassword"

Затем экспортируйте CSR из кошелька:

orapki wallet export -wallet /etc/oracle/wallet 
  -dn "CN=www.yourdomain.com, O=Your Company LLC, L=Seattle, ST=Washington, C=US" 
  -request /tmp/yourdomain.csr 
  -pwd "YourStrongPassword"

Замените путь к кошельку, DN и пароль своими значениями. DN в команде export должен совпадать с DN, использованным при добавлении пары ключей. Флаг -addext_san (orapki 12.2.1.1 и более поздних версий) встраивает Subject Alternative Names напрямую в CSR; перечислите все имена хостов, которые должен охватывать сертификат, включая как основной домен, так и субдомен www. Файл yourdomain.csr теперь содержит CSR, готовый к отправке.

Отправка CSR

Откройте файл .csr в любом текстовом редакторе (например, Notepad). Файл представляет собой обычный текст, начинающийся с -----BEGIN NEW CERTIFICATE REQUEST----- (или -----BEGIN CERTIFICATE REQUEST-----) и заканчивающийся соответствующей строкой -----END. Скопируйте весь блок, включая эти строки заголовка и окончания, и вставьте его в поле CSR при оформлении заказа у вашего CA.

Генерация CSR на Oracle iPlanet Web Server

Oracle iPlanet (ранее Sun Java System Web Server, затем Sun ONE) хранит серверные сертификаты и их ключи в хранилище токенов. Мастер CSR находится в консоли администратора:

  1. В консоли администратора Oracle iPlanet откройте Server Certificates и нажмите Request.
  2. В списке Configuration выберите конфигурацию, для которой предназначен сертификат.
  3. Выберите Token (Cryptographic Device), который будет хранить ключ. Если ключ хранится на сервере, выберите Internal; в противном случае выберите ваш внешний токен из выпадающего списка. Введите пароль для выбранного токена.
  4. Заполните данные сертификата:
    • Server Name: полное доменное имя, которое вы хотите защитить, например www.yourdomain.com. Для wildcard-сертификата добавьте звёздочку впереди, например *.yourdomain.com.
    • Organization (O): полное юридическое название вашей компании, например Your Company LLC.
    • Organizational Unit (OU): устарело для публичных CA. Оставьте пустым.
    • Locality (L): полное название города, где зарегистрирована ваша организация.
    • State or Province (ST): полное название штата или региона, где зарегистрирована ваша организация.
    • Country (C): двухбуквенный код страны по ISO, например US для США. См. полный список кодов стран.
  5. Для Key Type выберите RSA с размером 2048 бит (или больше).
  6. Для Certificate Signing Authority (CSA) выберите CA Signed.
  7. Проверьте введённые значения, затем нажмите Generate Request, а затем Finish.
  8. Скопируйте только что сгенерированный CSR (включая строки -----BEGIN NEW CERTIFICATE REQUEST----- и -----END NEW CERTIFICATE REQUEST-----) в текстовый файл, затем нажмите Close.

Примечание: как и в Oracle Wallet Manager, мастер CSR в iPlanet не предоставляет отдельного поля SAN. Укажите все имена хостов, которые должен охватывать сертификат (основной домен плюс www, а также любые другие субдомены), в поле SAN формы заказа вашего CA.

Генерация CSR на Oracle WebLogic Server

Oracle WebLogic Server использует хранилища ключей Java (keystores). Вы генерируете CSR с помощью утилиты Java keytool двумя командами: сначала keytool -genkeypair создаёт хранилище ключей и закрытый ключ под выбранным псевдонимом (alias), затем keytool -certreq экспортирует соответствующий CSR. Тот же псевдоним нужно будет использовать позже при импорте подписанного сертификата, чтобы ключ, CSR и будущий сертификат находились в одном месте.

Шаг 1: Создание хранилища ключей и закрытого ключа

Откройте терминал на сервере WebLogic и создайте новое хранилище ключей в формате PKCS12. PKCS12 является форматом хранилища ключей по умолчанию в Java начиная с JDK 9 и представляет собой современный, переносимый стандарт. Более старый проприетарный формат JKS официально устарел:

keytool -genkeypair 
  -alias server 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -validity 825

Что означают флаги:

  • -alias server: имя записи внутри хранилища ключей. Выберите метку, которую вы запомните (часто server или ваш домен). Запишите её. Вы должны использовать этот точный псевдоним при генерации CSR и снова при импорте подписанного сертификата.
  • -keyalg RSA -keysize 2048: 2048-битный ключ RSA — текущий публичный минимум. Для новых хранилищ ключей 3072 бита — разумное обновление для более долгоживущих ключей. Большинство публичных CA также принимают ECDSA (-keyalg EC -groupname secp256r1), если вы предпочитаете меньший и более быстрый ключ; -groupname требует JDK 13 или более позднюю версию, поэтому на средах выполнения Java 8 и Java 11, которые поддерживают более старые версии WebLogic, используйте вместо этого -keyalg EC -keysize 256, что выбирает ту же кривую.
  • -storetype PKCS12: принудительно задаёт современное хранилище ключей PKCS12. Соответствующее расширение — .p12 (или .pfx).
  • -keystore yourdomain.p12: файл хранилища ключей для создания. Замените на что-то, что вы запомните, и храните файл в безопасности: он содержит ваш закрытый ключ.
  • -validity 825: как долго действителен самоподписанный заполняющий сертификат внутри хранилища ключей. Подписанный сертификат от CA позже заменит его, поэтому точное значение не влияет на срок службы в продакшене.

Примечание: если вам необходимо продолжать использовать JKS для более старого развёртывания WebLogic, замените -storetype PKCS12 на -storetype JKS и используйте расширение .jks. Остальная часть процесса идентична. Для wildcard-сертификатов не используйте звёздочку в имени файла хранилища ключей: этот символ не поддерживается на большинстве файловых систем.

Затем keytool запросит пароль хранилища ключей. Выберите надёжный пароль и сохраните его в менеджере секретов: он понадобится вам для каждой последующей команды keytool и для конфигурации хранилища ключей WebLogic. С хранилищами ключей PKCS12 пароль ключа совпадает с паролем хранилища, поэтому нужно запомнить только один пароль.

Шаг 2: Ввод данных вашей организации (DN)

Теперь keytool запросит Distinguished Name (DN): поля идентификации, которые войдут в CSR. Отвечайте на каждый запрос точным, юридическим значением для вашей организации. Пунктуация и точность имеют значение, так как CA отклонит несоответствия с публичными деловыми записями.

  • First and last name (CN): это формулировка keytool, но фактически это поле Common Name. Введите точное FQDN, которое вы защищаете, например www.yourdomain.com, или wildcard, например *.yourdomain.com. Не вводите имя человека.
  • Organizational unit (OU): больше не выпускается публичными CA. Не пытайтесь пропустить это поле нажатием Enter: keytool подставит своё собственное значение по умолчанию и запишет OU=Unknown в запрос, а ответ пробелом даёт тот же результат. Интерактивного способа опустить это поле не существует, поэтому либо введите название отдела, например IT, либо используйте форму -dname, показанную ниже, и опустите компонент OU из строки.
  • Organization (O): полное юридическое название вашей компании, например Your Company LLC. Если название вашей компании содержит символы, такие как & или @, напишите их словами или опустите; keytool отклонит некоторые специальные символы.
  • City or locality (L): полное название города, например San Francisco. Не используйте сокращения.
  • State or province (ST): полное название штата или региона, например California. Не используйте двухбуквенный код.
  • Country code (C): двухбуквенный код страны по ISO, например US, GB, DE.

После последнего запроса keytool покажет сводку вида CN=www.yourdomain.com, OU=Unknown, O=Your Company LLC, L=San Francisco, ST=California, C=US. Введите yes для подтверждения. Файл хранилища ключей теперь существует с одной записью: ваш псевдоним, содержащий закрытый ключ и самоподписанный заполняющий сертификат.

Если вы предпочитаете неинтерактивную команду, передайте DN встроенно и пропустите запросы:

keytool -genkeypair 
  -alias server 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -dname "CN=www.yourdomain.com, O=Your Company LLC, L=San Francisco, ST=California, C=US" 
  -validity 825

Шаг 3: Генерация CSR с SAN

Современные браузеры и клиенты TLS проверяют сертификаты по расширению Subject Alternative Name (SAN), а не только по Common Name. Запросите SAN непосредственно в CSR, чтобы CA включил их в выпущенный сертификат. Используйте тот же псевдоним и хранилище ключей из Шага 1:

keytool -certreq 
  -alias server 
  -keystore yourdomain.p12 
  -file yourdomain.csr 
  -ext san=dns:yourdomain.com,dns:www.yourdomain.com

Что означают флаги:

  • -alias server: должен совпадать с псевдонимом из Шага 1. Это псевдоним, чей закрытый ключ подписывает запрос.
  • -keystore yourdomain.p12: должен совпадать с хранилищем ключей из Шага 1.
  • -file yourdomain.csr: имя выходного файла для CSR.
  • -ext san=dns:…: расширение Subject Alternative Name. Перечислите все имена хостов, которые должен охватывать сертификат, включая как основной домен (yourdomain.com), так и субдомен www. Добавьте больше записей через запятую, например dns:api.yourdomain.com.

keytool запросит пароль хранилища ключей и запишет CSR в файл yourdomain.csr в текущей директории.

Важно: сохраняйте свой псевдоним и хранилище ключей

Самая распространённая ошибка keytool на WebLogic — импорт подписанного сертификата под новым псевдонимом. Это приведёт к тому, что сертификат сохранится как отдельная доверенная запись без привязанного закрытого ключа, и SSL-слушатель WebLogic не запустится. Всегда импортируйте подписанный ответ обратно в тот же псевдоним, который содержит закрытый ключ (псевдоним из Шага 1).

Запишите эти три значения сейчас, прежде чем закрыть терминал:

  • Псевдоним (в этом руководстве — server).
  • Путь к файлу хранилища ключей (например, yourdomain.p12).
  • Пароль хранилища ключей.

Если вы не уверены, какой псевдоним содержит ваш ключ, выведите содержимое хранилища ключей и найдите запись, тип которой PrivateKeyEntry:

keytool -list -v -keystore yourdomain.p12

Шаг 4: Проверьте CSR перед отправкой

Обнаружьте опечатки в DN или отсутствующие SAN до того, как их проверит CA. Выведите CSR с помощью keytool:

keytool -printcertreq -file yourdomain.csr

Или, если установлен OpenSSL:

openssl req -noout -text -in yourdomain.csr

Убедитесь в трёх вещах в выводе: поле Subject показывает ваш точный DN, Subject Alternative Name перечисляет все нужные вам имена хостов, а размер Public-Key соответствует запрошенному (2048-битный RSA или другой выбранный вами вариант). Вы также можете вставить CSR в наш Декодер CSR для той же проверки в браузере.

Шаг 5: Отправка CSR вашему Certificate Authority

Откройте файл yourdomain.csr в любом текстовом редакторе. Файл представляет собой обычный текст, начинающийся с -----BEGIN NEW CERTIFICATE REQUEST----- и заканчивающийся -----END NEW CERTIFICATE REQUEST-----. Скопируйте весь блок, включая эти строки заголовка и окончания, и вставьте его в поле CSR при оформлении заказа у вашего CA. В Windows используйте Ctrl + A, затем Ctrl + C, чтобы захватить весь текст; в macOS используйте Cmd + A, затем Cmd + C.

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

После того как CA проверит ваш запрос и выпустит сертификат, продолжите с разделом как установить ваш SSL-сертификат на Oracle. В WebLogic вы импортируете подписанный сертификат обратно в тот же псевдоним в том же хранилище ключей, а затем указываете SSL-слушателю на это хранилище ключей.

Сэкономьте 10% на SSL-сертификатах при заказе сегодня!

Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

Детальное изображение дракона в полете
Написано

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