CSR

CSR (Certificate Signing Request) — файл-запрос на выпуск сертификата. Содержит публичный ключ + подписанные им данные (CN, SAN, организация). CA принимает CSR, проверяет что ты владеешь ключом, и выпускает сертификат.

Формат

PKCS #10 (RFC 2986). Обычно в PEM-обёртке: -----BEGIN CERTIFICATE REQUEST-----.

Что внутри

Генерация openssl

# RSA
openssl req -new -newkey rsa:2048 -nodes -keyout key.pem -out csr.pem \
  -subj "/CN=example.com/O=Acme"

# ECDSA P-256
openssl ecparam -genkey -name prime256v1 -out key.pem
openssl req -new -key key.pem -out csr.pem -subj "/CN=example.com"

# С SAN через конфиг
cat > san.cnf <<EOF
[req]
distinguished_name=req
req_extensions=v3
[req_extensions]
subjectAltName=DNS:example.com,DNS:www.example.com,DNS:api.example.com
EOF
openssl req -new -key key.pem -out csr.pem -subj "/CN=example.com" -config san.cnf

Просмотр

openssl req -in csr.pem -noout -text

ACME без CSR

Клиенты типа certbot/acme.sh генерируют CSR автоматически. Ручной CSR нужен только для commercial CA или EV/OV.

См. также