Настройка SSL с помощью letsencrypt и nodejs - PullRequest
0 голосов
/ 02 апреля 2019

Впервые я настраиваю SSL, я решил использовать letsencrypt.

У меня есть приложение Angular, работающее по https, и оно работает. У меня также есть API-интерфейсы REST, реализованные в NodeJS, и я застрял в возможности обеспечить их безопасным образом. Служба работает на порту 8443, и если я отключаю запрос сертификата, они работают (это объясняет, что не нужно вносить никаких изменений в код).

Код NodeJS выглядит следующим образом:

const privateKey = fs.readFileSync(<path_to_privkey.pem>, ‘utf8’);
const certificate = fs.readFileSync(<path_to_cert.pem>, ‘utf8’);
const ca = fs.readFileSync(<path_to_chain.pem>, ‘utf8’);

let activateHttps = true;

const credentials = {
key: privateKey,
cert: certificate,
ca: ca,
requestCert: activateHttps,
rejectUnauthorized: activateHttps
};

API доступны с https://IP:8443/api/. Маршрутизация реализована в NodeJS.

Конфигурация на сайтах с включенным / 000-default.conf выглядит следующим образом:

LoadModule ssl_module libexec/apache2/mod_ssl.so
<VirtualHost :>
ServerName 
ServerAlias 
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted

DocumentRoot /var/www/html
ErrorLog {APACHE_LOG_DIR}/error.log CustomLog {APACHE_LOG_DIR}/access.log combined
ProxyPreserveHost On
SSLEngine on
SSLCertificateFile <path_to_cert>
SSLCertificateKeyFile <path_to_key>
SSLCertificateChainFile <path_to_chain>
<Location /api>
ProxyPass https:/<ip>/:8443/api #tried redirect but not working! So I access with the IP
ProxyPassReverse https://<ip>:8443/api

Приложение NodeJS размещено в другом каталоге, отличном от /var/www/html.

.

Я не могу понять, почему https не работает при предоставлении API. Любая помощь? Заранее спасибо

...