ELB для внутреннего сервера с использованием HTTPS с самозаверяющим сертификатом

Эта ошибка может быть вызвана неконтролируемыми требованиями к Java-версии.

В моем случае я смог разрешить эту ошибку, создав высокопрофильный проект с открытым исходным кодом, переключившись с Java 9 на Java 8 используя SDKMAN! .

sdk list java
sdk install java 8u152-zulu
sdk use java 8u152-zulu

Затем выполните чистую установку, как описано ниже.


При использовании Maven в качестве инструмента построения иногда полезно - и, как правило, приятно, сделать clean сборку установки с отключенным тестированием.

mvn clean install -DskipTests

Теперь, когда все построенный и установленный, вы можете продолжить и запустить тесты.

mvn test

2
задан Charles L. 5 March 2019 в 07:28
поделиться

1 ответ

Это было близко, всего несколько маленьких шагов. Я получил это, работая с ALB ELB.

Сначала я использовал скрипт, аналогичный описанному здесь: https://myopswork.com/how-to-do-end-to-end-encryption-of-data-in-transit-bw -aws-alb-and-ec2-3b7fd917cddd

#!/bin/bash

DIR=$(dirname [110])

domain=$(uname -n)
echo "Generating SSL for $domain"
commonname="$domain"
country="US"
state="California"
locality="LA"
organization="My Inc."
organizationalunit="Org"
email="my@email.com"

# Optional
password=dummypassword

echo "Generating key request for $domain"

mkdir -p /etc/ssl/private
chmod 700 /etc/ssl/private
mkdir -p /etc/ssl/certs

# Generate a key
openssl genrsa -des3 -passout pass:$password -out /etc/ssl/private/$domain.key 2048 -noout

# Remove passphrase from the key. Comment the line out to keep the passphrase
echo "Removing passphrase from key"
openssl rsa -in /etc/ssl/private/$domain.key -passin pass:$password -out /etc/ssl/private/$domain.key

# Create the request
echo "Creating CSR"
openssl req -new -key /etc/ssl/private/$domain.key -out /etc/ssl/private/$domain.csr -passin pass:$password \
    -subj "/C=$country/ST=$state/L=$locality/O=$organization/OU=$organizationalunit/CN=$commonname/emailAddress=$email"

# Create the cert
openssl x509 -req -days 365 -in /etc/ssl/private/$domain.csr -signkey /etc/ssl/private/$domain.key -out /etc/ssl/certs/$domain.crt

# Setup nginx config
sed "s/{{hostname}}/${domain}/" < $DIR/template.conf > /etc/nginx/sites-available/site.conf
ln -sf /etc/nginx/sites-available/site.conf /etc/nginx/sites-enabled/site.conf

Шаблон выглядел примерно так:

server {
    # listen 80 #uncomment to also listen on port 80 - useful for debugging
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name {{hostname}};

    ssl_certificate /etc/ssl/certs/{{hostname}}.crt;
    ssl_certificate_key /etc/ssl/private/{{hostname}}.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";

    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
    add_header X-Frame-Options sameorigin;
    add_header X-Content-Type-Options nosniff;

    location / {
        ...
    }
}

Домен выглядел примерно как ip-172-10-11-12.

Для отладки всего я запустил что-то , например , следующее - это из памяти, поэтому у него могут быть отключены детали. Я начал с того, что убедился, что могу свернуть сервер локально, нажав nginx:

curl https://ip-172-10-11-12/healthcheck --cacert /etc/ssl/certs/ip-172-10-11-12.crt

Затем я получил адрес ELB и убедился, что могу свернуться против этого. Я должен был пойти на машине, которая могла получить доступ к машине ELB. Обратите внимание, что из-за правил безопасности, ELB не был привязан, но был свернут. Я считаю, что я проверил это 2 способами. Сначала я попробовал:

curl https://elb-address/healthcheck --insecure

Затем я добавил ip-172-10-11-12 в файл / etc / hosts и попытался:

curl https://ip-172-10-11-12/healthcheck --cacert /cert/file/copied/onto/machine

Как только я заработал эту работу , ALB ELB начал работать. Мне пришлось проверить правила брандмауэра, группы безопасности AWS и т. Д., Прежде чем этот последний вызов сработал. Но когда это сработало, ELB начал видеть сервер.

Во время отладки я также получил 1 заключительную информацию: если доступ к ELB осуществляется из общедоступного Интернета, то в ELB должны быть только общедоступные подсети, а общедоступные подсети должны находиться в той же зоне доступности, что и целевые машины

0
ответ дан Charles L. 5 March 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: