如何解决在 HTTPS 节点应用程序的 DigitalOcean 应用程序平台上使用 Let's Encrypt 证书
我习惯于使用 Docker、Express 框架和 https 包在 DigitalOcean 服务器上部署 HTTPS Node 应用程序,如下所示:
const https = require('https');
const app = express();
// ...
const ssl = {
key: fs.readFileSync(process.env.PRIVATE_KEY),cert: fs.readFileSync(process.env.CERT),ca: fs.readFileSync(process.env.CHAIN),};
const server = https.createServer(ssl,app);
server.listen({ port },() => {
// ...
});
我的应用程序位于 Docker 容器内,但是当我执行 docker run 时,我使用“v”选项公开了 Droplet 上的证书,如下所示:
-v /etc/letsencrypt/:/etc/letsencrypt
最后,我的 Docker 容器传递了环境变量,以便我的 Node 应用程序可以知道各种证书文件的路径。例如,
CHAIN=/etc/letsencrypt/live/mydomain.com/chain.pem
现在,我的 Node 应用程序可以读取证书并使用它们创建 HTTPS 服务器。
我不知道这种设置是否理想,但效果很好。
现在,我想知道如何使用 DigitalOcean 应用平台来做同样的事情。
到目前为止,我所做的是:
- 将我的域的 DNS 更改为指向 DigitalOcean 的域名服务器
- 按照以下步骤为该域创建了一个由 DO 管理的 Let's Encrypt 证书:https://www.digitalocean.com/docs/accounts/security/certificates/
- 创建了一个 DO 应用,将我的应用定义为服务
但我无法让它与证书一起工作,因此,让我的 HTTPS 应用程序工作。
这里有人有想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。