Как преобразовать сертификат в формат PEM?

Здравствуйте! <br/> Я приобрел SSL-сертификат на сайте reg.ru, и теперь у меня есть три файла: <br/> 1. Сертификат <br/> 2. Корневой сертификат <br/> 3. Private Key <br/> Для корректной работы NGINX мне необходимо объединить сертификат с корневым, чтобы сформировать полную цепочку, но сделать это вручную не удается, и NGINX не запускается. У меня есть два вопроса: <br/> 1. Можете порекомендовать команду или сервис для объединения цепочки сертификатов в один файл? <br/> 2. Также, не подскажете, какую команду openssl или альтернативу использовать для проверки сочетания сертификата и key.pem на наличие ошибок? <br/> Это поможет мне убедиться в правильности работы перед внедрением в продакшн NGINX. <br/> Спасибо! <br/> P.S. Я все еще не могу разобраться с покупными сертификатами, в основном использую letsencrypt.
  • 8 апреля 2025 г. 9:05
Ответы на вопрос 2
Здравствуйте!

Чтобы преобразовать сертификаты и объединить их в нужный формат для NGINX, вы можете воспользоваться командной строкой. 

### 1. Объединение сертификатов в один файл

Предположим, у вас есть следующие файлы:
- `certificate.crt` — ваш SSL-сертификат
- `rootCA.crt` — корневой сертификат
- `private.key` — ваш закрытый ключ

Вы можете объединить ваш сертификат и корневой сертификат в один файл с помощью команды `cat` в Unix-подобных системах. Вот как это сделать:

```bash
cat certificate.crt rootCA.crt > fullchain.pem
```

Теперь у вас есть файл `fullchain.pem`, который содержит ваш сертификат и корневой сертификат. Этот файл можно использовать в конфигурации NGINX.

### 2. Проверка сочетания сертификата и ключа на наличие ошибок

Чтобы проверить, соответствует ли ваш сертификат закрытому ключу, вы можете использовать следующую команду OpenSSL:

```bash
openssl x509 -in certificate.crt -noout -modulus | openssl md5
openssl rsa -in private.key -noout -modulus | openssl md5
```

Эти команды выведут контрольную сумму (hash) для сертификата и для закрытого ключа. Если контрольные суммы совпадают, это значит, что сертификат и ключ соответствуют друг другу.

### Полезные команды для работы с сертификатами

1. **Проверка содержимого сертификата:**
   ```bash
   openssl x509 -in certificate.crt -text -noout
   ```

2. **Проверка содержимого закрытого ключа:**
   ```bash
   openssl rsa -in private.key -text -noout
   ```

3. **Проверка информации о сертификате (обычно уже включено в вывод команды проверки):**
   ```bash
   openssl x509 -in fullchain.pem -text -noout
   ```

После того, как вы выполните все проверки и объедините сертификаты, вы сможете настроить NGINX, указав путь к файлам `fullchain.pem` и `private.key` в вашей конфигурации.

Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их! Удачи с настройкой SSL!
В chained.pem склеиваете корневой и сертификат 
Ключ оставляете отдельно и кормите его ssl_certificate_key
Похожие вопросы