Lighttpd 如何配置 SSL数字证书?本文档指导您在 lighttpd 1.4.x HTTP 服务器上安装并配置 SSL 证书,关于 lighttpd 1.4.x 在各个平台上的安装不再涉及。由于近年 OpenSSL 高危漏洞不断,因此强烈推荐您在开始配置之前首先升级 OpenSSL 到最新版本
本文档指导您在 lighttpd 1.4.x HTTP 服务器上安装并配置 SSL 证书,关于 lighttpd 1.4.x 在各个平台上的安装不再涉及。
由于近年 OpenSSL 高危漏洞不断,因此强烈推荐您在开始配置之前首先升级 OpenSSL 到最新版本
完整的 SSL 证书分为四个部分:
以 COMODO 证书为例,您将收到四份文件:
您要依照 中间证书 -> 根证书 的顺序串联为证书链,才能被绝大多数浏览器信任。使用 cat
命令串联中间证书、根证书:
01.cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ca-root.bundle.crt
然后将证书密钥 example_com.key
和域名证书 example_com.crt
合并
01.cat example_com.key example_com.crt > example_com.pem
得到 root.bundle.crt
和 example_com.pem
后,将两者上传至服务器并保存在安全的位置,例如 /etc/ssl/private
目录下 (没有此目录请创建)。
下面是 lighttpd.conf
文件中关于 SSL 的部分配置
01.$SERVER["socket"] == ":443" {02. ssl.engine = "enable"03. ssl.pemfile = "/etc/ssl/private/example_com.bundle.pem"04. ssl.ca-file = "/etc/ssl/private/ca-root.bundle.crt"05. server.name = "example.com"06. server.document-root = "/var/www"07. }
下面是 lighttpd.conf
文件中关于强制 HTTP 定向到 HTTPS 的部分配置
01.$HTTP["scheme"] == "http" {02. # capture vhost name with regex conditiona -> %0 in redirect pattern03. # must be the most inner block to the redirect rule04. $HTTP["host"] =~ ".*" {05. url.redirect = (".*" => "https://%0$0")06. }07. }
01.ssl.use-compression = "disable"
01.ssl.use-sslv2 = "disable"02. ssl.use-sslv3 = "disable"
您需要支持 TLS-FALLBACK-SCSV
以自动开启此功能。下列 OpenSSL 版本包含对 TLS-FALLBACK-SCSV
的支持,Lighttpd 会自动启用此特性。
1.0.1j
及之后的版本中支持1.0.0o
及之后的版本中支持0.9.8zc
及之后的版本中支持一份推荐的配置:
01.ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:AES128+EECDH:AES128+EDH"
如果您需要兼容一些老式系统和浏览器 (例如 Windows XP 和 IE6),请使用下面的:
01.ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"
生成强 DHE 参数:
01.cd /etc/ssl/certs02. openssl dhparam -out dhparam.pem 4096
建议您使用性能强劲的平台生成此文件,例如最新版的至强物理机。如果您只有一台小型 VPS,请使用 openssl dhparam -out dhparam.pem 2048
命令生成 2048bit 的参数文件。
添加到 SSL 配置文件:
01.ssl.dh-file = "/etc/ssl/certs/dhparam.pem"02. ssl.ec-curve = "secp384r1"
01.server.modules += ( "mod_setenv" )02. $HTTP["scheme"] == "https" {03. setenv.add-response-header = ( "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; preload")04. }
01.sudo service lighttpd restart
尽快选购申请,价格随时改变!