如何使用 Kestrel/linux 中托管的 aspnet core 3.1 配置签名 SSL 证书

How to configure signed SSL certificates with aspnet core 3.1 on hosted in Kestrel/linux

我设法获得了一个 letsencrypt 签名证书,以便在主机上为我的域正确启用 SSL。现在我不明白如何将它绑定到我的应用程序 运行 on ubuntu:

我使用以下设置私钥:

webBuilder.UseKestrel((hostingContext, options) =>
{
   options.ListenAnyIP(443, loptions => loptions.UseHttps("/etc/letsencrypt/live/mydomain.com/privkey.pem"));
});

The server mode SSL must use a certificate with the associated private key

我不清楚如何在不使用 apache 或 nginx 的情况下绑定 public 和私钥并远程使用它。

您首先需要使用 OpenSSL 将您的 私钥certifcate 转换为 pfx 证书:

openssl pkcs12 -inkey privatekey.pem -in mycert.cert -export -out mycertificate.pfx

然后,您可以在 Kestrel 的 appsettings.json 文件中以这种方式使用它:

"Kestrel": {
    "EndPoints": {
      "HttpsDefaultCert": {
        "Url": "https://*:443"
      },
      "Http": {
        "Url": "http://*:80"
      }
    },
    "Certificates": {
      "Default": {
        "Path": "mycertificate.pfx",
        "Password": "MyCertificatePassword"
      }
    }
  }