我有一个用C#编写的应用程序接口,托管在DOCKER Container中。可以通过调用http://server:port/api访问它。我想为HTTPS启用它。我应该在哪里进行更改?在码头?在IIS中?我需要证书吗?
抱歉,我对HTTPs和Docker非常陌生。
发布于 2021-05-29 04:29:21
不要使用您的托管环境或应用层来实现https。使用反向代理通过http协议实现对应用层的HTTPS和代理请求。它增加了容器化应用程序的可移植性/单一责任/(可能是性能)。
一些用于https实现的有用的反向代理:
发布于 2021-05-29 04:58:41
您应该使用Nginx或Apache在反向代理的较高层P.E中实现它。或者,如果您正在云环境中部署,您可以使用应用程序负载均衡器,并将证书直接应用于它。
例如,如果您使用NGinx,您甚至可以将其部署为Docker容器,该容器将接收所有请求,然后根据URL模式将它们重定向到特定的容器。
P.E
一个NGINX配置文件可以让你这样做。
user nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type text/html;
upstream client{
server frontend:4200;
}
upstream api{
server backend:80;
}
upstream auth{
server auth:80 ;
}
server {
listen 443;
ssl_certificate <your cert path>;
ssl_certificate_key <your cert key>;
location / {
proxy_pass http://client;
}
location ~ ^/api {
proxy_pass http://api;
}
location ~ ^/auth {
proxy_pass http://auth;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}您在上游部分提供的名称将是引用您的特定容器的名称。
发布于 2021-05-29 04:44:15
如果您使用的是IIS,只需执行以下步骤:
https://stackoverflow.com/questions/67745094
复制相似问题