You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS EC2实例上配置SSL证书与密钥(Rasa部署场景)

在AWS EC2上给Rasa服务器配置SSL加密的完整指南

我来帮你搞定这个问题——结合AWS的最佳实践,给你两种可行方案,优先推荐第一种,因为不用在EC2上手动维护证书,更省心还自带高可用。


方案一:用Application Load Balancer(ALB)终止SSL(强烈推荐)

这是AWS环境下最常用的SSL配置方式,ALB会帮你处理所有加密解密的工作,还能自动续期ACM证书,同时提供负载均衡能力,后续扩容也方便。

步骤1:创建ALB并关联你的ACM证书

  1. 登录AWS控制台,进入EC2服务,左侧导航栏找「负载均衡器」,点击「创建负载均衡器」
  2. 选「Application Load Balancer」,点「创建」
  3. 基本配置:给ALB起个好记的名字(比如rasa-ssl-alb),方案选「互联网面向」,IP类型按需选IPv4或双栈
  4. 网络映射:选和你的EC2实例同一个VPC,至少勾两个可用区(保证高可用)
  5. 安全组:新建或选一个允许HTTPS(443端口)入站的安全组,要是想把HTTP自动转HTTPS,也把80端口放开
  6. 路由配置:
    • 新建一个目标组,类型选「实例」,名字比如rasa-targets
    • 协议选HTTP,端口填Rasa默认的5005(或者你自定义的端口)
    • 注册目标:选上你的EC2实例,点「包含为已注册」,然后创建目标组
  7. SSL证书:在「安全设置」里选「从ACM选择证书」,挑你之前生成的那个域名证书就行
  8. 点「创建」,等个几分钟让ALB部署完成

步骤2:把Route53域名指向ALB

  1. 进Route53控制台,找到你的域名托管区
  2. 新建一条A记录,开启「别名」选项,别名目标直接选你刚创建的ALB
  3. 保存后等个几分钟,DNS就生效了

步骤3:让EC2安全组允许ALB访问

  1. 回到EC2控制台,找到你Rasa实例的安全组
  2. 加一条入站规则:允许HTTP(端口5005)访问,来源选ALB的安全组(或者直接填ALB的IP范围)
  3. 这样ALB就能把加密后的请求转发到你的Rasa服务器了

可选:把HTTP请求强制转HTTPS

  1. 回到ALB的监听配置,新增一个HTTP(80端口)的监听
  2. 规则设置为「重定向到HTTPS」,端口443,状态码选301永久重定向,这样用户输入HTTP地址会自动跳转到HTTPS

方案二:直接在EC2实例上配置SSL(适合不需要ALB的场景)

如果你确实不想用ALB,那得注意:ACM自动生成的证书,私钥是AWS保管的,你没法下载。所以得自己生成私钥和CSR,再导入ACM拿证书。

步骤1:在EC2上生成私钥和证书签名请求(CSR)

ssh登录你的EC2实例,执行这两条命令:

# 生成2048位的私钥,保存为rasa.key
openssl genrsa -out rasa.key 2048

# 生成CSR,按提示填信息,重点是「Common Name」必须填你的域名
openssl req -new -key rasa.key -out rasa.csr

步骤2:在ACM中导入证书

  1. 进ACM控制台,点「导入证书」
  2. 把刚才生成的CSR内容粘贴到「证书签名请求」字段,提交后等ACM签发证书
  3. 签发完成后,下载证书链(包含你的域名证书和中间证书),保存为rasa.crt

步骤3:把证书和私钥放到EC2的安全目录

  1. 在EC2上建个目录存证书,比如/etc/rasa/ssl/:
sudo mkdir -p /etc/rasa/ssl/
  1. 把rasa.key和rasa.crt传到这个目录,然后设置权限(私钥只能让root读,避免泄露):
sudo chmod 600 /etc/rasa/ssl/rasa.key
sudo chown root:root /etc/rasa/ssl/rasa.key

步骤4:配置Rasa使用SSL启动

你可以直接在启动命令里指定证书和密钥:

# 用root权限启动Rasa监听443端口(普通用户没法用1024以下的端口)
sudo rasa run --ssl-certificate /etc/rasa/ssl/rasa.crt --ssl-keyfile /etc/rasa/ssl/rasa.key --port 443 --host 0.0.0.0

或者在Rasa的config.yml里加配置:

ssl:
  certificate: /etc/rasa/ssl/rasa.crt
  keyfile: /etc/rasa/ssl/rasa.key

要是不想用root权限,也可以让Rasa监听5005端口,然后用iptables把443转发到5005:

sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 5005

步骤5:更新EC2安全组

修改EC2的安全组,允许HTTPS(443端口)入站访问,要是不需要HTTP了,就把5005端口的入站规则关掉或者只允许内部访问


最后测试一下

不管用哪种方案,都可以用浏览器访问https://你的域名,看地址栏有没有锁图标;或者用curl命令测试:

curl -v https://你的域名

要是看到SSL连接成功的日志,就说明配置好了。

内容的提问来源于stack exchange,提问作者Shawn Zhang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 20:07:30