Как подписать CSR для включения частного центра сертификации (CA) в AWS ACM?(Как создать сертификат версии 3?) - PullRequest
1 голос
/ 24 мая 2019

Я пытаюсь настроить частный центр сертификации (CA) в AWS ACM, чтобы настроить прямое VPN-подключение к VPC без доступа к Интернету (специально).https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-getting-started.html

Поэтому в конфигурации VPN-клиента мне нужно получить сертификат сервера ARN.Вот куда я пошел, чтобы попытаться настроить частный CA для настройки Client VPN Endpoint.

. В настоящее время я создал Private CA в ACM, но мне необходимо:

Импортируйте сертификат CA для активации вашего CA.

Мне немного неясно, что здесь происходит.На данный момент это только я, поэтому я сделал следующее:

(по этой ссылке: https://gist.github.com/fntlnz/cf14feb5a46b2eda428e000157447309)

На локальном ПК:

  1. Создать корневой секретный ключ CA:

    openssl genrsa -des3 -out rootCA.key 4096
    
  2. Создать и самостоятельно подписать «Root Certificate» на локальном ПК:

    openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt
    
  3. Создание сертификата для службы AWS "AWS Service Certificate" с использованием корневого ключа CA (секретного ключа) / корневого сертификата и выданного AWS CSR:
openssl x509 -req -in AWS-PRIVATE-CSR.pem -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out service.aws.crt -days 500 -sha256

Затем с консоли AWS ACM:

Из диалогового окна Import CA Certificate:

  • Добавить "AWS Service Certificate" в качестве Тела сертификата
  • Добавить "Root Certificate"как цепочка сертификатов

На этом этапе я получаю сообщение об ошибке "Подтвердить и импортировать":

CertificateMismatchException Версия сертификата должна быть больше или равна 3.

Я проверил версию сгенерированного "AWS Service Certificate" с помощью следующей команды, и она отображается как Версия 1 .

openssl x509 -in service.aws.crt -text -noout
Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number:
    ...

Так что, очевидно, я здесь что-то не так делаю, но не могу понять, что это такое.Чтобы устранить текущую ошибку AWS, мой вопрос:

  • Как создать сертификат Version: 3 с использованием корневого ключа / сертификата и AWS CSR?

В качестве альтернативылучший способ подключения к VPC без доступа в интернет?Если проще настроить соединение VPC <-> VPC, где я могу получить доступ к другому VPC через SSH, который может работать.

1 Ответ

1 голос
/ 24 мая 2019

Я ошибся в своем комментарии, что это может быть ваша версия openssl. Инструкции по генерации сертификата из CSR немного сбиты. Проблема в том, что у вас нет правильной настройки openssl для этого.

Самое простое решение - создать текстовый файл (например, v3.ext) с содержанием:

authorityKeyIdentifier=keyid,issuer
basicConstraints=critical,CA:TRUE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment

Добавьте следующее в вашу командную строку openssl "-extfile filename", например. "-extfile v3.ext"

Итак, ваша команда openssl будет:

openssl x509 -req -in AWS-PRIVATE-CSR.pem -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out service.aws.crt -days 500 -sha256 -extfile v3.ext

Затем вы можете проверить с помощью

openssl x509 -в сервисе.aws.crt -text -noout

Это должно сгенерировать вам сертификат v3.

...