欢迎您,请 登录   |   马上注册
关于我们021-52582199 在线咨询 >
台湾  |  香港  |  老版本网站入口GeoTrust官方授权中国区合作伙伴
服务与支持 > 如何安装SSL证书 > Lighttpd安装SSL证书

Lighttpd安装SSL证书

前言

Lighttpd是一个安全的、快速的、兼容的,和非常灵活的Web服务器,已为高性能环境做了很多优化。它具有非常低的内存占用,相比其他网络服务器的CPU负载。

本文撰写的时候Lighttpd的最新版本是1.4.43,我们将主要以此版本为例介绍安装方式,可能会略有不同,详细还应当以官方文档为准。

接收证书

您会收到一封来自迅通诚信的邮件,证书内容附在邮件中,请在邮件的最后,找到以:“-----BEGIN CERTIFICATE-----”开头的一段文本,请将此部分的内容复制出来用Notepad存成一个纯文本文件。(注意:不要将其存成Microsoft Word 或其它字处理软件格式,并确定证书内容中不含有空行和空格,)文件名可以为server.crt 或者 server.cer (crt和cer都是证书的可用扩展名是等效的)。如下所示: 

 接受证书

证书准备

请使用我们的在线PEM合成工具将server.key和server.crt合成一个PEM文件。请先选中以下2个选项:

  • PEM文件包括密钥(KEY)
  • PEM文件包括证书(CRT/CER)

然后会出现2个文本输入框,以及另外2个选项:“对密钥加密”和“自动添加 中间证书”。请确保这2个选项都没有被选中。输入server.key和server.crt后,点击“合成PEM文件”,下载合成好的文件保存为:server.pem。

查找中间证书

为了确保兼容到所有浏览器,我们必须部署中间证书,如果不这么做,虽然安装过程并不会报错,但可能导致Android系统,Chrome 和 Firefox等浏览器无法识别。请到 中间证书下载工具,输入您的Server.crt,然后下载中间证书,请将中间证书保存为Chain.crt。

配置Lighttpd.conf参数

SSL参数说明

 参数  用途
 ssl.engine     是否开启SSL。 值:enable / disable
 ssl.pemfile
 SSL证书文件,应该同时包含SSL私钥和证书,如我们上面合成好的server.pem。
 ssl.ca-file
 中间证书文件。如我们上面存好的chain.crt。
 ssl.use-sslv2  
 值:enable/disable。是否支持SSL2.0。只在1.4.21以前有效,其后版本已经禁用。
 ssl.use-sslv3     值:enable/disable。是否支持SSL3.0。只在1.4.29以后有效。
 ssl.cipher-list  配置允许的SSL加密套件

标准配置

 

$SERVER["socket"] == ":443" {
     server.document-root        = "/www/servers/www.example.org/secure/"
     ssl.engine                  = "enable" 
     ssl.pemfile                 = "/etc/lighttpd/ssl/server.pem"
     ssl.ca-file                 = "/etc/lighttpd/ssl/chain.crt"
     ssl.use-sslv2               = "disable"
     ssl.use-sslv3               = "disable"
     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"
 }

通配符和多域名证书配置

如果我们要在一个IP上部署一个SAN或者Wildcard证书,来实现同时支持多个虚拟站点,这是一种很常见,也是兼容性非常好的部署方法,假设我们已经有一个证书,Server.pem,其中包含3个SANs:

  • www.example.com
  • mail.example.com
  • www.example.cn
$SERVER["socket"] == ":443" {
     ssl.engine                  = "enable" 
     ssl.pemfile                 = "/etc/lighttpd/ssl/server.pem"
     ssl.ca-file                 = "/etc/lighttpd/ssl/chain.crt"
     $HTTP["host"] == "www.example.com" {
          server.document-root = "/var/www/servers/www.example.com/pages/" 
          } 
     $HTTP["host"] == "mail.example.com" {
          server.document-root = "/var/www/servers/mail.example.com/pages/" 
          } 
     $HTTP["host"] == "www.example.cn" {
          server.document-root = "/var/www/servers/www.example.cn/pages/" 
          }    
 }

自动跳转到HTTPS

示例1,全部跳转到HTTPS

$HTTP["scheme"] == "http" {
    # capture vhost name with regex conditiona -> %0 in redirect pattern
    # must be the most inner block to the redirect rule
    $HTTP["host"] =~ ".*" {
        url.redirect = (".*" => "https://%0$0")
    }
}

 示例2,指定url

$HTTP["scheme"] == "http" {
    $HTTP["host"] =~ ".*" {
        url.redirect = ("^/phpmyadmin/.*" => "https://%0$0")
    }
}

 示例3,指定虚拟站点和url

$HTTP["scheme"] == "http" {
    $HTTP["host"] == "sth.example.com" {
            url.redirect = ("^/phpmyadmin/.*" => "https://sth.example.com$0")
    }
}

参考文档

http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_SSL

https://raymii.org/s/tutorials/Strong_SSL_Security_On_lighttpd.html



文档编写日期:2016年12月26日
为什么选择我们
  • 官方授权
    中国区合作伙伴
  • 证书远程协助
    安装服务
  • 无法安装
    30天退款保障
  • 免费提供
    28天试用证书