用于SaaS应用程序的SSL

问题描述 投票:0回答:2

我如何在Ha-proxy负载平衡器中使用Lets加密证书管理器?我需要在我的SaaS应用程序上实现自定义域功能服务。除SSL之外,其他所有功能都可以正常工作。如何实现?使用Haproxy作为负载均衡器。

haproxy lets-encrypt saas haproxy-ingress
2个回答
0
投票

这里是一个可能的解决方案。我认为比较容易。它使用Haproxy社区和Certbot客户端。

  1. 在单独的服务器上安装Certbot客户端,并开发REST API与客户端进行交互。在这里,您将能够将您的应用程序与Certbot集成以生成证书。

  2. 在HAproxy服务器上创建一个目录来存储证书。在服务器上安装NFS并将此目录安装在Certbot服务器上。使用Certbot生成证书时,请部署到该安装点。

  3. 为Certbot创建部署脚本,以便在部署新证书时重新加载Haproxy服务。

  4. 在Certbot服务器上安排任务,使其每天运行一次续订过程。

如果您不喜欢Certbot客户端,则可以自己开发客户端。我现在正在Scala中开发一个以与我的电子商务平台集成,这并不难。


0
投票

试图定义步骤。从较大的脚本简化而成,如果有错误,请在此处写下以解决此问题。

先决条件:

  1. 已安装haproxy,例如:ip为200.200.200.200
  2. 域名dns被获取并定向到haproxy,例如在这里:test.com
  3. http正在运行,如果正在运行,则整个网络链都在运行
  4. 已安装letencrypt并使用帐户
  5. 可能停止haproxy并使网站瘫痪

步骤:

  1. 清理/ etc / letsencrypt中带有test.com rm -rf *test.com*的旧文件夹

  2. 停止haproxy

  3. 运行命令:

    certbot certonly --standalone --preferred-challenges http --http-01-port 80 -d test.com

    certbot certonly --standalone --preferred-challenges http --http-01-port 80 -d www.test.com

  4. 检查是否还可以

    [email protected]:/etc/letsencrypt/renewal# cat www.test.com.conf

应该是:

#renew_before_expiry = 30 days
version = 0.22.2
archive_dir = /etc/letsencrypt/archive/www.test.com
cert = /etc/letsencrypt/live/www.test.com/cert.pem
privkey = /etc/letsencrypt/live/www.test.com/privkey.pem
chain = /etc/letsencrypt/live/www.test.com/chain.pem
fullchain = /etc/letsencrypt/live/www.test.com/fullchain.pem

# Options used in the renewal process
[renewalparams]
http01_port = 80
installer = None
pref_challs = http-01,
account = YOUR_ACCOUNT
authenticator = standalone
  1. 创建文件夹/etc/letsencrypt/live/www.test.com和etc / letsencrypt / live / test.com

  2. 创建到归档文件的链接文件

ln -s ../../archive/test.com/cert1.pem cert.pem
ln -s ../../archive/test.com/chain1.pem chain.pem
ln -s ../../archive/test.com/fullchain1.pem fullchain.pem
ln -s ../../archive/test.com/privkey1.pem privatekey.pem
  1. 将证书复制到haproxycat fullchain.pem privatekey.pem > /etc/haproxy/ssl/test.com-fullchain.pem

与www相同

  1. 在haproxy a ssl前端中添加
frontend test_com_ssl
  bind *:443 ssl crt /etc/haproxy/ssl/ ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

  default_backend test_com

后端可以与http前端相同

  1. 重新启动haproxy,检查证书是否处于活动状态

要检查以查看证书的到期日期:键入

openssl x509 -enddate -noout -in test.com-fullchain.pem

要做:未涵盖如何更新脚本,希望以后再执行此操作

© www.soinside.com 2019 - 2024. All rights reserved.