需要理解:
证书:域名,即只要通过https访问这个域名,证书生效
端口和SSL:一般Docker容器的端口是http而非https,所以当加上了https便无法访问
解决办法:
1.反向代理,比较遗憾的是fnOS目前系统设置层级并没有这个功能。但服务中间件的确使用的是nginx,在系统设置里倒入证书以后,证书的问题就不用再头疼(或可省略引用证书那几行),主要考虑反向代理。
nginx配置文件路径:/usr/trim/nginx/conf/nginx.conf,在server字段下添加
listen 8081 ssl;
server\_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/yourdomain.crt; # 证书
ssl\_certificate\_key /etc/nginx/ssl/yourdomain.key; # 密钥
ssl\_trusted\_certificate /etc/nginx/ssl/intermediate.crt; # 中间证书
ssl\_protocols TLSv1.2 TLSv1.3;
ssl\_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://localhost:8080; # 替换为后端服务器的地址和端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
2.对有中间件的Docker容器,docker cp 证书文件 <容器id>:/容器路径,exec进入容器,把证书放到位置上,将nginx或apache监听的端口改成ssl,引用证书。
反正两种方法都是需要修改配置文件,这一点说实话没有某晖的设置页面UI上直接添加省心。