hardening(angie): default_server needs a cert on its 443 listener or 'angie -t' fails with 'no ssl_certificate defined' — generate a one-time self-signed dummy (CN=bootstrap-default, 10y) in /etc/angie/ssl so unknown-SNI clients handshake then get 444; mark listen 443 as ssl explicitly
This commit is contained in:
parent
435d66aad2
commit
efdf056352
@ -322,14 +322,25 @@ EOF
|
|||||||
|
|
||||||
# ── default catch-all server: unmatched Host -> drop ──
|
# ── default catch-all server: unmatched Host -> drop ──
|
||||||
if [[ ! -f "$d/_on/00-default.conf" ]]; then
|
if [[ ! -f "$d/_on/00-default.conf" ]]; then
|
||||||
|
# The default_server also listens on 443 to catch unknown-SNI TLS clients.
|
||||||
|
# It needs SOME cert to complete the handshake before `return 444` drops them;
|
||||||
|
# angie won't start a 443 listener without ssl_certificate. Generate a self-signed
|
||||||
|
# dummy once (CN='bootstrap-default', 10y) so unknown-SNI clients get dropped
|
||||||
|
# after connecting while real vhosts are picked by SNI.
|
||||||
|
if [[ ! -f "$d/ssl/bootstrap-default.crt" ]]; then
|
||||||
|
sudo_ install -d -m 0755 "$d/ssl"
|
||||||
|
sudo_ openssl req -x509 -newkey rsa:2048 -nodes -days 3650 -keyout "$d/ssl/bootstrap-default.key" -out "$d/ssl/bootstrap-default.crt" -subj "/CN=bootstrap-default/O=bootstrap" 2>/dev/null
|
||||||
|
fi
|
||||||
sudo_ tee "$d/_on/00-default.conf" >/dev/null <<'EOF'
|
sudo_ tee "$d/_on/00-default.conf" >/dev/null <<'EOF'
|
||||||
# default_server: drop requests that match no enabled host (drive-by scanners, bare-IP)
|
# default_server: drop requests that match no enabled host (drive-by scanners, bare-IP)
|
||||||
server {
|
server {
|
||||||
listen 80 default_server;
|
listen 80 default_server;
|
||||||
listen [::]:80 default_server;
|
listen [::]:80 default_server;
|
||||||
listen 443 default_server;
|
listen 443 ssl default_server;
|
||||||
listen [::]:443 default_server;
|
listen [::]:443 ssl default_server;
|
||||||
server_name _;
|
server_name _;
|
||||||
|
ssl_certificate /etc/angie/ssl/bootstrap-default.crt;
|
||||||
|
ssl_certificate_key /etc/angie/ssl/bootstrap-default.key;
|
||||||
return 444;
|
return 444;
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user