我已经创建了一个domain(domain.com)和一个子域(abc.domain.com),并且还通过使用letencrypt为这两者生成了SSL证书。这两个Django项目都托管在AWS EC2上,并为它们创建了代理服务器,如下所示:
server {
listen 443 ssl;
server_name example.com;
location / {
proxy_pass https://1.2.3.4:444;
proxy_ssl_server_name on;
proxy_ssl_verify on;
proxy_ssl_certificate /home/domain/fullchain.pem;
proxy_ssl_certificate_key /home/domain/privkey.pem;
}
}
server {
listen 443 ssl;
server_name abc.example.com;
location / {
proxy_pass https://1.2.3.4:445;
proxy_ssl_server_name on;
proxy_ssl_verify on;
proxy_ssl_certificate /home/subdomain/fullchain.pem;
proxy_ssl_certificate_key /home/subdomain/privkey.pem;
}
}
我对代理服务器和两个项目进行分层,开始没有出现任何问题,问题是当我在浏览器中输入https://example.com
时,它没有显示页面,但是当我拉端口号为Domain的域时。 https://example.com:444
,它开始显示该页面。我不知道我在想什么。
答案 0 :(得分:1)
为了使https://example.com
工作,您需要使用SSL配置正确配置Nginx,其中包括使用ssl_certificate
和ssl_certificate_key
指令,因为您似乎没有使用它们。>
使用proxy_ssl_certificate
用于在Nginx和代理服务器(在您的情况下为django应用程序)之间使用HTTPS连接。
使用ssl_certificate
用于在用户浏览器和Nginx之间使用HTTPS连接,您需要使https://example.com
正常工作
有关更多详细信息,请检查configuring HTTPS servers