0

Я создал AWS API Gateway, и я указываю его на VPS. Я хочу иметь возможность включить аутентификацию SSL на стороне клиента для моего VPS. Я следил за прохождением AWS here. Я сгенерировал PEM-закодированный сертификат в консоли API Gateway и скопировал его на мой веб-сервер Apache. Похоже, что конфигурация сертификата и/или vhost вызывает фатальную ошибку в модуле Apache SSL.Конфигурация Apache AWS API Шлюз сертификатов

Журнал ошибок:

[Tue Nov 10 10:53:57.140815 2015] [ssl:info] [pid 7283] AH01914: Configuring server example.com:443 for SSL protocol 
[Tue Nov 10 10:53:57.140998 2015] [ssl:trace1] [pid 7283] ssl_engine_init.c(724): Configuring permitted SSL ciphers [!aNULL:!eNULL:!EXP:HIGH:!aNULL] 
[Tue Nov 10 10:53:57.141165 2015] [ssl:debug] [pid 7283] ssl_engine_init.c(843): AH01904: Configuring server certificate chain (1 CA certificate) 
[Tue Nov 10 10:53:57.141175 2015] [ssl:debug] [pid 7283] ssl_engine_init.c(390): AH01893: Configuring TLS extension handling 
[Tue Nov 10 10:53:57.141204 2015] [ssl:emerg] [pid 7283] AH02572: Failed to configure at least one certificate and key for example.com:443 
[Tue Nov 10 10:53:57.141226 2015] [ssl:emerg] [pid 7283] SSL Library Error: error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned 
[Tue Nov 10 10:53:57.141251 2015] [ssl:emerg] [pid 7283] AH02311: Fatal error initialising mod_ssl, exiting. See /var/log/apache2/error.log for more information 
AH00016: Configuration Failed 

Apache конфигурации ВХост:

<VirtualHost *:443> 
    ServerName example.com 

    ServerAdmin [email protected] 
    DocumentRoot /var/www/example 

    DirectoryIndex index.html 

    SSLEngine on 
    SSLCertificateChainFile ssl/ca.crt 
    SSLVerifyDepth 1 

    LogLevel info ssl:warn debug trace1 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 
+1

Вы не можете требовать/использовать SSL-сертификаты клиентов, если у вас нет сертификата SSL * server *. Я не вижу, что этот cert и его закрытый ключ сконфигурированы здесь и «Не удалось настроить хотя бы один сертификат и ключ для example.com: 443», кажется, что это проблема. –

+0

@ Michael-sqlbot Да, вы абсолютно правы. Я создал добавленный самозаверяющий сертификат, ключ и сертификат в конфигурацию Apache, и сервер запускается правильно. Теперь API Gateway жалуется на «Неизвестную ошибку конечной точки». – Richard

+1

Шлюз API вряд ли будет вести переговоры с внутренним сервером с использованием самозаверяющего сертификата. Он должен аутентифицировать конечную точку, которую самозаверяющий сертификат не разрешает ... сертификат должен быть из аккредитованного центра сертификации для того, чтобы аутентификация была действительной. –

ответ

1

Дальнейшие исследования доказали @Michael - sqlbot было правильным по обоим пунктам. Сертификат от центра сертификации требуется до того, как шлюз AWS API будет взаимодействовать с конечной точкой сервера сторонних разработчиков.

+0

Я знаю, что это было какое-то время, но сможете ли вы обновить то, как выглядит ваша конфигурация vhost сейчас, когда вы получили эту работу и объяснить немного об этом? –

Смежные вопросы