Ubuntu 如何将SSL证书添加到asp.net核心docker swarm+;莱森密码?

Ubuntu 如何将SSL证书添加到asp.net核心docker swarm+;莱森密码?,ubuntu,asp.net-core,ssl,docker-swarm,lets-encrypt,Ubuntu,Asp.net Core,Ssl,Docker Swarm,Lets Encrypt,我有一个运行在Docker Swarm上的asp.net核心应用程序,向应用程序添加SSL功能并通过letsencrypt和certbot更新证书的有效方法是什么 我知道Docker Swarm的秘密,但它们是不可变的,所以我不能在证书更新时更改秘密。这是我想出的解决方案!您可以随意提出一些想法,让它变得更好:) [很抱歉格式化,我无法让它执行我想要的操作] 我在Docker Swarm主机之一上设置了certbot部署,获得了正确域的证书,并设置了certbot,以便在可用时自动请求新证书 使

我有一个运行在Docker Swarm上的asp.net核心应用程序,向应用程序添加SSL功能并通过letsencrypt和certbot更新证书的有效方法是什么


我知道Docker Swarm的秘密,但它们是不可变的,所以我不能在证书更新时更改秘密。

这是我想出的解决方案!您可以随意提出一些想法,让它变得更好:)

[很抱歉格式化,我无法让它执行我想要的操作]

  • 我在Docker Swarm主机之一上设置了certbot部署,获得了正确域的证书,并设置了certbot,以便在可用时自动请求新证书
  • 使用证书的一些必要条件更新您的应用程序:

    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://;"
    
    docker服务更新--env add Kestrel\u证书\u默认值\u密码=“证书密码”--env add Kestrel\u证书\u默认值\u路径=/run/secrets/defaultcert
    --env add ASPNETCORE_url=“https://;”
    
  • 在您的计算机上安装此bash脚本,以便每天从根cronjob运行。(请确保设置您自己的域和密码)

    SecretName=$(日期+%Y-%m-%d)

    OldSecretName=$(日期--昨天的日期+%Y-%m-%d)

    DomainName=您的.domain

    AppName=yourswarmapp

    cd/etc

    cd-letsencrypt

    cd直播

    cd$DomainName

    openssl pkcs12-export-out${DomainName}.pfx-inkey privkey.pem-in cert.pem-certfile chain.pem-passin pass:-passout pass:

    sudo docker secret create$SecretName/etc/letsencrypt/archive/$DomainName/${DomainName}.pfx

    sudo docker服务更新--secret add$SecretName--secret rm$OldSecretName--env add Kestrel__证书__默认__路径=/run/secrets/$SecretName$AppName

    sudo docker机密rm$OldSecretName

  • 坐下来享受自动更新和清理启用SSL的应用程序