【发布时间】:2020-04-01 02:38:35
【问题描述】:
我已经构建了一个网络应用程序app.mywebapp.com。我计划为我的用户实施白标。
用户示例网站:userwebsite.com。我想将他们的子域指向我的应用程序。
例如:dashboard.userwebsite.com 应该指向app.mywebapp.com
我在我的用户 DNS 设置中添加了 CNAME 记录
我正在使用openresty 通过反向代理实现动态SSL 证书处理。
我的 web 应用在一个 AWS EC2 实例上运行,SSL 由负载均衡器处理。
我创建了另一个带有负载均衡器的 EC2 实例来处理来自我的用户网站的 SSL 请求。
当我在浏览器中键入 EC2 实例公共 DNS 时,我收到不安全的 SSL 错误消息
"sni-support-required-for-valid-ssl" certificate is not trusted
这是通过openresty处理SSL的nginx.conf文件
user www-data;
events {
worker_connections 1024;
}
http {
lua_shared_dict auto_ssl 1m;
lua_shared_dict auto_ssl_settings 64k;
resolver 8.8.8.8 ipv6=off;
init_by_lua_block {
auto_ssl = (require "resty.auto-ssl").new()
auto_ssl:set("allow_domain", function(domain)
return true
end)
auto_ssl:init()
}
init_worker_by_lua_block {
auto_ssl:init_worker()
}
server {
listen 443 ssl;
ssl_certificate_by_lua_block {
auto_ssl:ssl_certificate()
}
ssl_certificate /etc/ssl/resty-auto-ssl-fallback.crt;
ssl_certificate_key /etc/ssl/resty-auto-ssl-fallback.key;
proxy_ssl_server_name on;
location / {
proxy_set_header Host app.mywebapp.com;
proxy_set_header Referer $host$uri;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Accept-Encoding "";
proxy_set_header Accept-Language $http_accept_language;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_read_timeout 5m;
proxy_pass https://app.mywebapp.com;
}
}
server {
listen 80;
location /.well-known/acme-challenge/ {
content_by_lua_block {
auto_ssl:challenge_server()
}
}
location /{
return 301 https://$host$request_uri;
}
}
server {
listen 127.0.0.1:8999;
client_body_buffer_size 128k;
client_max_body_size 128k;
location / {
content_by_lua_block {
auto_ssl:hook_server()
}
}
}
}
【问题讨论】:
-
什么是 openresty
-
我遇到了这个问题,
tail -F /usr/local/openresty/nginx/logs/error.log在终端点击刷新帮助我了解了问题所在
标签: ssl nginx amazon-ec2 reverse-proxy openresty