mod_openssl

mod_openssl 使用 OpenSSL 监听独立的套接字,用于 TLS 连接 (https)

openssl (设置)

设置 TLS 套接字

openssl options;
选项
一个包含以下条目的键值表
listen
(必填) 要监听的套接字地址 (与 "listen":plugin_core.html#plugin_core__setup_listen 相同),可以多次指定以设置具有相同选项的多个套接字
pemfile
(必填) 包含私钥、证书和(可选)中间证书的文件 (通常不包含根证书)
ca-file
包含中间证书的文件
ciphers
OpenSSL 密码字符串 (默认: "HIGH !aNULL !3DES +kEDH +kRSA !kSRP !kPSK")
dh-params
包含生成的 dh-params 的文件名 (默认: 固定 4096 位参数)
ecdh-curve
OpenSSL ecdh-curve 名称
选项
OpenSSL 选项列表 (默认: NO_SSLv2, NO_SSLv3, CIPHER_SERVER_PREFERENCE, NO_COMPRESSION, SINGLE_DH_USE, SINGLE_ECDH_USE)
verify
启用客户端证书验证 (默认: false)
verify-any
允许所有 CA 和自签名证书,用于手动检查 (默认: false)
verify-depth
设置客户端验证深度 (默认: 1)
verify-require
中止未能通过验证的客户端 (默认: false)
client-ca-file
包含客户端 CA 证书的文件 (用于验证客户端证书)

对于 ciphers,请参阅 OpenSSL ciphers 字符串

对于 options,请参阅 options。通过切换“NO_”前缀来明确指定反向标志以覆盖默认值。

IPv4 和 IPv6 上的简单 TLS

setup {
	module_load "mod_openssl";
	openssl [
		"listen" => "0.0.0.0:443",
		"listen" => "[::]:443",
		"pemfile" => "/etc/certs/lighttpd.pem",
		"options" => ["ALL", "NO_TICKET"],
	];
}

带客户端证书验证的 TLS

setup {
	module_load "mod_openssl";
	openssl (
		"listen" => "0.0.0.0:443",
		"listen" => "[::]:443",
		"pemfile" => "/etc/certs/lighttpd.pem",
		"client-ca-file" => "/etc/certs/myCA.pem",
		"verify" => true,
		"verify-require" => true
	);
}

带任意客户端证书的 TLS

setup {
	module_load "mod_openssl";
	openssl (
		"listen" => "0.0.0.0:443",
		"listen" => "[::]:443",
		"pemfile" => "/etc/certs/lighttpd.pem",
		"verify" => true,
		"verify-any" => true,
		"verify-depth" => 9
	);
}
openssl.setenv "client-cert";

openssl.setenv (操作)

设置 SSL 环境变量字符串

openssl.setenv list;
列表
要导出的子集列表

支持的子集

  • “client” – 设置 SSL_CLIENT_S_DN_ 短命名条目
  • “client-cert” – 设置 SSL_CLIENT_CERT 为客户端证书 PEM
  • “server” – 设置 SSL_SERVER_S_DN_ 短命名条目
  • “server-cert” – 设置 SSL_SERVER_CERT 为服务器证书 PEM