# Выпуск SSL сертификата для веб-консоли
# Симптомы

Как выпустить SSL сертификата для веб-консоли?

# Решение

Генерируем секретный ключ для корневого УЦ:

```
openssl ecparam -name prime256v1 -genkey -noout -out local-root-ca-key.pem
```

Генерируем **самоподписанный** сертификат для корневого УЦ:

```
openssl req -config /dev/null -new -x509 -batch -days 365 -key local-root-ca-key.pem -subj '/C=AQ/CN=Local Root CA Certificate' -out local-root-ca-crt.pem -addext 'basicConstraints = critical, CA:true' -addext 'keyUsage = digitalSignature, keyCertSign'
```

Генерируем секретный ключ для промежуточного УЦ:

```
`openssl ecparam -name prime256v1 -genkey -noout -out intermediate-local-ca-key.pem`
```

Генерируем CSR запрос для промежуточного УЦ:

```
`openssl req -config /dev/null -new -key intermediate-local-ca-key.pem -subj '/C=AQ/CN=Intermediate Local CA Certificate' -out intermediate-local-ca-csr.pem`
```

Подписываем сертификат с помощью корневого УЦ:

```
openssl req -config /dev/null -copy_extensions none -days 365 -in intermediate-local-ca-csr.pem -CA local-root-ca-crt.pem -CAkey local-root-ca-key.pem -out intermediate-local-ca-crt.pem -addext 'basicConstraints = critical, CA:true' -addext 'keyUsage = digitalSignature, keyCertSign'
```

Генерируем секретный ключ сертификата веб-консоли:

```
openssl genrsa -out console-key.pem 2048
```

Генерируем CSR запрос для сертификата веб-консоли (адрес 192.168.122.136):

```
openssl req -new -key console-key.pem -out console-csr.pem \
  -subj "/CN=192.168.122.136" \
  -addext "basicConstraints=CA:FALSE" \
  -addext "subjectAltName=IP:192.168.122.136"
```

Подписываем сертификат с помощью корневого УЦ:

```
openssl x509 -req -in console-csr.pem \
  -CA intermediate-local-ca-crt.pem \
  -CAkey intermediate-local-ca-key.pem \
  -CAcreateserial \
  -out console-crt.pem \
  -days 365 \
  -copy_extensions copyall
```

Если требуется, чтобы NGFW возвращал сертификат веб-консоли с цепочкой, то нужно импортировать сертификат (сертификат и приватный ключ) промежуточного УЦ, точнее тот сертификат, которым был подписан сертификат веб-консоли. Назначаем ему роль "УЦ для авторизации в веб-консоли".

Далее импортируем сам сертификат (сертификат и приватный ключ)  для веб-консоли.