Egg.js如何配置SSL?
时间: 2024-09-24 16:11:06 浏览: 38
关于自定义Egg.js的请求级别日志详解
在Egg.js项目中配置SSL涉及到几个关键步骤,特别是如果你使用的是Nginx作为反向代理服务器。这里是一个基本的示例:
**1. 创建SSL证书文件**
首先,你需要生成SSL证书和私钥,通常你可以通过Let's Encrypt或者购买商业证书来做。将生成的`server.crt`(公钥)和`server.key`(私钥)文件保存到项目的某个目录下。
**2. 配置Nginx**
如果你的服务器使用Nginx,需要编辑Nginx的配置文件(比如`nginx.conf`或`sites-available`下的站点配置)。添加一个新的虚拟主机(server block),例如:
```nginx
server {
listen 443 ssl;
server_name your_domain.com;
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
# ...其他Nginx配置...
location / {
proxy_pass http://your_egg_app_host:port;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
```
记得替换`your_domain.com`和`your_egg_app_host`。
**3. 配置Egg应用**
在Egg.js应用的配置文件(如`config/config.default.js`)中,设置HTTPS相关的选项,例如端口:
```javascript
module.exports = {
// ...
port: process.env.PORT || 7001,
https: {
enable: true,
keyPath: '/path/to/server.key', // 私钥路径
certPath: '/path/to/server.crt', // 公钥路径
ca: ["/path/to/ca.pem"], // 如果有CA证书
ciphers: 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECCAES:RSA:AES:HIGH:!NULL:!aNULL',
secureOptions: ['SSL_OP_NO_TLSv1_0', 'SSL_OP_NO_TLSv1_1']
},
// ...
};
```
**4. 启动应用**
最后,重启Egg应用使其读取新的配置。
阅读全文