У меня нет большого опыта настройки SSL для сайта, поэтому есть большая вероятность, что я чего-то упускаю, но как настроить SSL для EC2, не используя балансировщик нагрузки?
Это для сервера, который используется для связи со сторонним API, который требует, чтобы мы занесли наш IP-адрес в белый список, мы не можем использовать DNS.
Я следил за этим руководством https://www.digitalocean.com/community/tutorials/how-to-create-an-ssl-certificate-on-nginx-for-ubuntu-14-04 но пока мой браузер показывает сертификат, отличный от того, который я использую. Может его как-то кешировать?
Вот тот, который я пытаюсь использовать -
-----BEGIN CERTIFICATE-----
MIIDDzCCAfegAwIBAgIJAMkWNQsBzPFcMA0GCSqGSIb3DQEBCwUAMB4xHDAaBgNV
BAMMEyouc3RnLmF1dG9icmFpbi5jb20wHhcNMTcxMTAzMDIwNzIzWhcNMjIxMTAy
MDIwNzIzWjAeMRwwGgYDVQQDDBMqLnN0Zy5hdXRvYnJhaW4uY29tMIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA15PhjQTHi6o+2TCAd/dUpZzR1C/ucRfk
8SGr+2Zf/t0L3nNWt01M0EiaDpzqelkTHErwOAyRVWOUAeL/kk2SPqxb1y+mGPUN
TWvKb/UWpaXTuAHmrTngpQaSq8mxxGXlHH/GB664kNhhmQxoCCoBGN/CsDmCrvGw
EWL8rYVPppwiI9yury+XT5GqDEslR2+cSLp9FuuMGrFwwffw4xSCGr8kBeEY4VIr
8gW8E4MBFE37R4e6MhcCTJ2XuNDR69ZuCLM3IC3tiEzf/HmABcoI0/SbeqT/8WJX
9vIu2uoDmLn+Ae+QWEN/hzX5ER3lgBquT4OifBD/9KVJ1rff4hk9FQIDAQABo1Aw
TjAdBgNVHQ4EFgQUUoh2YRTx/ouZlYYCfdRCZycC6EUwHwYDVR0jBBgwFoAUUoh2
YRTx/ouZlYYCfdRCZycC6EUwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC
AQEAPSfIYBVVbueHgGLiFuBAWLdROA7a2P3SQsZcNsj1reSkPxJ0YB8g4fdyUNwp
wws+SWSBZwkmriXE+NFuECV8uln1OgYcUOmmcT9YT0eNQih9lLq/UtYtq5aWYJR/
0pwfGZ6kasHFOLdcN4SgKloqvJ4wJbt9FwpPpfVQSfh9RNEodMlDTAZQ+w2nXPHQ
VygDrCEle6VVTEzfRiTGP6JB+E4RpDeW1ECpvp1WrNiwEgSbhW3Ek54AK/stQweQ
QYE7OtiFEQtEQiqgu4gXfKjNawqwwu5sb22ot7LvgDgVudscXV40PzFAJzFEOvCr
xJtJ0+JZ37VqFTLmJidH+Hz3Ng==
-----END CERTIFICATE-----
В вашем описании не совсем ясно, кто вовлечены. Похоже, этот сертификат был предоставлен вам третьей стороной? Вы подключаетесь к их службе или размещаете службу, к которой они подключаются? На основании «используется для связи со сторонним API» я предполагаю, что они размещают службу, а вы подключаетесь к ним.
Хорошо, у нас есть некоторые проблемы. Во-первых, это не сертификат SSL-сервера (без закрытого ключа!), Поэтому его нельзя установить на балансировщик нагрузки или (например) в nginx. Вместо этого это сертификат CA, который можно использовать для подписи других сертификатов. «Частные» центры сертификации обычно используются для создания «внутренних» сертификатов, которым не нужно доверять третьим лицам. Я выполнил следующую команду, чтобы просмотреть сертификат (после сохранения как 'weird.cert'):
openssl x509 -in weird.cert -noout -text
Внутри я вижу самоподписанный сертификат CA, о чем свидетельствуют следующие поля:
Issuer: CN=*.stg.autobrain.com
Subject: CN=*.stg.autobrain.com
X509v3 extensions:
X509v3 Basic Constraints:
CA:TRUE
Я могу ошибаться здесь, но это выглядит как будто кто-то пытался выпустить собственный самозаверяющий сертификат с подстановочными знаками для * .stg.autobrain.com, но споткнулся и вместо этого выдал полный сертификат CA. Возможно, этот сертификат затем используется для подписания «настоящего» сертификата с подстановочными знаками, вероятно, с тем же именем?
В любом случае, если они делают услуги общедоступными, они должен используйте для этого настоящий ЦС, поскольку доверие стороннему ЦС создает с вашей стороны некоторые очень реальные риски безопасности, поскольку любой, у кого есть доступ к закрытому ключу этого ЦС, может выдать сертификат практически для чего угодно, и любая система, которая доверяет этому ЦС, будет доверять любому сертификату, сгенерированному им.
Я рекомендую оттолкнуть эту третью сторону и попросить их просто получить сертификат SSL, подписанный общедоступным центром сертификации. Как только это будет сделано, SSL будет просто работать, без лишних хлопот.