我正在尝试为我的 dev Laravel项目设置HTTPS,因为我想使用Facebook登录( 需要HTTPS dev 环境)
我正在关注本教程:https://medium.com/@oliver.zampieri/self-signed-ssl-reverse-proxy-with-docker-dbfc78c05b41
它基本上表示以下内容:
创建自签名证书:
openssl req -subj '/CN=my-sitename.development' -x509 -newkey rsa:4096 -nodes -keyout key.pem -out cert.pem -days 365
查找到主机的路由: Docker在自己的沙箱中运行容器,因此,当容器在桥接网络中运行时,我们需要知道主机的IP地址是什么(如果我们路由到localhost或127.0.0.1,我们将代理回到容器中,而不是,我们需要路由到主机)
docker network inspect bridge
=>这使我们获得172.17.0.1
现在创建NginX配置文件:
server {
listen 443;
# I've added this myself
server_name my-sitename.development;
ssl on;
ssl_certificate /etc/nginx/conf.d/cert.pem;
ssl_certificate_key /etc/nginx/conf.d/key.pem;
location / {
proxy_pass http://172.17.0.1;
}
}
运行Docker容器
docker run --name nginx_proxy -d -v `pwd`:/etc/nginx/conf.d -p 443:443 nginx
最后但并非最不重要的一点是,我在Mac钥匙串中添加了创建的证书,并将其设置为“始终信任”。
当我在浏览器(Chrome v67)中打开(https)本地站点时,它会告诉我证书有效且网站正在运行(我可以看到我的站点文本等。),资产。
对资产的请求如下所示: 我认为这可能不对,但是我不确定为proxy_pass配置输入什么(请参见上文)。为proxy_pass输入my-sitename.development无效。然后将我重定向到nginx_proxy docker容器的默认nginx页面。
https://172.17.0.1/css/all.css
请注意:我正在运行另一个nginx docker容器来处理对my-sitename.development:80的请求
谢谢!
答案 0 :(得分:0)
解决了! 毕竟不需要设置额外的Docker容器... 只需编辑我现有Docker容器(处理:80连接)的nginx配置