Запуск nginx с SSL на AWS

Запуск nginx с SSL на AWS

Я установил nginx на AWS с помощью этого скрипта настройки

--prefix=/usr/local/nginx-1.16.1 --with-http_ssl_module --with-openssl=~/Downloads/openssl-1.1.1i --without-http_rewrite_module

и я выпустил сертификат для моего URL (пусть это будет mydom.com) с помощью AWS Certificate Manager (ACM), и его статус отображается какИзданныйЗатем я отредактировал соответствующий раздел вnginx.conf

server {
listen 443 ssl;
server_name localhost mydom.com;
ssl_certificate  /etc/ssl/certs/ca-bundle.crt;
ssl_certificate_key  /etc/trusted-key.key;
<truncated>
}

Я выбрал файлы: /etc/ssl/certs/ca-bundle.crtи /etc/trusted-key.keyтолько потому, что они были в файловой системе Linux и просто для того, чтобы попробовать запустить nginx с ними, но он не запустился. Он выдал:

[emerg] cannot load certificate key "/etc/trusted-key.key": PEM_read_bio_PrivateKey() failes (SSL: error:0909006C:PEM routines:get_name: no start line:Expecting: ANY PRIVATE KEY)

Конечно, это была всего лишь попытка. В противном случае, я думаю, мне, вероятно, следует использовать файл .crt, выданный ACM (если таковой имеется), а затем мне следует как-то создать файл .keyи поместить его куда-нибудь в файловую систему Linux, например, в /etc/nginx/ssl? Я не уверен. Как мне поступить?

Примечание: У меня есть некоторый опыт запуска веб-приложений на моем собственном веб-сервере, но я использую толькоhttpУ меня нет большого опыта вhttps

решение1

Сертификаты ACM могут использоваться только управляемыми сервисами AWS, в первую очередь балансировщиками нагрузки. Вы не можете получить доступ к закрытому ключу, поэтому вы не можете предоставить сертификат ACM с помощью Nginx, установленного на вашем экземпляре EC2.

Лучшими вариантами для вас являются:

  • Завершение https на ALB, перенаправление трафика по http на веб-сервер
  • Используйте сертификат Let's Encrypt. Существует широкий выбор программного обеспечения, которое поможет автоматизировать это.

Связанный контент