ssl-certificate - lighttpd 配置 - lighttpd 是否使用地址进行身份验证,例如 subjectAltNames=IP:192.168.1.20?
问题描述
以下是一个测试设置,用于检查当lighttpd包含在证书subjectAltNames中时是否会基于 IP 地址进行身份验证,例如
主题AltNames=IP:192.168.1.20
配置:
$HTTP["host"] == "192.168.1.20" {
# Ensure the Pi-hole Block Page knows that this is not a blocked domain
setenv.add-environment = ("fqdn" => "true")
# Enable the SSL engine with a LE cert, only for this specific host
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/Pihole-Home-Lan/private/Pihole-Home-Lan.key-crt.pem"
# ssl.ca-file = "/etc/lighttpd/ssl/Pihole-Home-Lan/public/Pihole-Home-Lan-fullchain.pem"
ssl.ca-file = "/etc/lighttpd/ssl/Pihole-Home-Lan/public/Home-Lan.crt.pem"
ssl.honor-cipher-order = "enable"
ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"
ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "disable"
# client side authentification
ssl.verifyclient.activate = "enable"
ssl.verifyclient.enforce = "enable"
ssl.verifyclient.depth = "10"
ssl.verifyclient.username = "SSL_CLIENT_S_DN_CN"
## ssl.verifyclient.username = "SSL_CLIENT_S_DN_emailAddress"
}
# Redirect HTTP to HTTPS
$HTTP["scheme"] == "http" {
$HTTP["host"] =~ ".*" {
url.redirect = (".*" => "https://%0$0")
}
}
}
/var/log/lighttpd/access.log
通过原始地址访问时的行192.168.1.20
:
1551209819|192.168.1.20|GET / HTTP/1.1|401|351
浏览器显示 401 未授权。是 SSL 失败还是有其他问题?
解决方案
$SERVER["socket"] == ":443" { ... }
(或$SERVER["socket"] == "192.168.1.20:443" { ... }
)属于配置的顶层。放入$SERVER["socket"]
其他lighttpd配置条件是错误的,即放入其中是错误的$HTTP["host"] == "192.168.1.20" { ... }
在通过加密的 TLS 通道接收 HTTP 请求之前,在套接字连接开始时协商 TLS。Host
由于在协商 TLS 时还没有收到HTTP 请求头,所以放入任何其他条件都是无效$SERVER["socket"]
的,例如$HTTP["host"]
推荐阅读
- php - 我不明白为什么会抛出“调用未定义的方法 CI_Input()::event()”
- python - 进口于
而不是文件 - c# - 堆叠多组文本块和 texbox,组间自动间隔
- python-3.x - 重载 pygame.Surface 以动态增加表面的大小
- php - 在电子邮件通知 WooCommerce 中显示自定义订单元数据值
- bioinformatics - 确定读数相对于参考基因组的覆盖百分比
- swift - RxSwift 协议和具体类型
- c# - 一旦我在 Bot Framework 中选择选项,自适应卡片就会再次显示
- python - 有没有更有效的方法来做到这一点 - Python For Loop Strings
- java - 通过 TreeSet 以降序对数组进行排序,查找数组的第三大元素