Как добавить SSL-сертификат в asp. net core docker swarm + letsencrypt? - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть базовое приложение asp. net, работающее на Docker Swarm, каков эффективный способ добавления возможностей SSL в приложение и обновления сертификата через letsencrypt и certbot?

Я знаю о Docker Секретах роя, но они неизменны, поэтому я не могу просто изменить секрет при обновлении сертификата.

1 Ответ

1 голос
/ 13 февраля 2020

Вот решение, которое я придумал! Не стесняйтесь вносить идеи, чтобы сделать его лучше :)

[Извините за форматирование, я не мог заставить его делать то, что хотел]

  1. Я настроил Развертывание certbot на одном из Docker Swarm хостов и получение сертификата для правильного домена, а также настройка certbot для автоматического запроса новых сертификатов при их наличии.
  2. Обновите приложение, добавив в него несколько необходимых вещей для использования. certs:

    docker service update <yourswarmapp> --env-add Kestrel__Certificates__Default__Password="cert-password" --env-add Kestrel__Certificates__Default__Path=/run/secrets/defaultcert
    --env-add ASPNETCORE_URLS="https://;"
    
  3. Установите этот скрипт bash на свой компьютер для ежедневного запуска из root cronjob. (Обязательно установите свой собственный домен и пароли)

    SecretName = $ (дата +% Y-% m-% d)

    OldSecretName = $ (дата - дата вчера +% Y -% m-% d)

    DomainName = your.domain

    AppName = yourswarmapp

    cd / et c

    cd letsencrypt

    cd архив

    cd $ DomainName

    openssl pkcs12 -export -out $ {DomainName} .pfx -inkey privkey1.pem -in cert1.pem -certfile chain1.pem -passin pass : -passout pass:

    sudo docker секретное создание $ SecretName /etc/letsencrypt/archive/$DomainName/$ndomDomainName Event.pfx

    sudo docker обновление службы --secret -add $ SecretName --secret-rm $ OldSecretName --env-add Kestrel__Сертификаты__Default__Path = / run / secrets / $ SecretName $ AppName

    sudo docker secret rm $ OldSecretName

  4. Расслабьтесь и наслаждайтесь автоматическим обновлением и очисткой приложения с поддержкой SSL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...