使用SSL运行的所有站点都使用HTTPS协议的默认端口443上的SSL通过加密服务器和客户端之间的数据安全的数据通信。在我们前面的文章中我们描述了有关在CentOS的/ RHEL系统上
安装的lighttpd和
创造virtualhosts。本文将帮助你在Lighttpd的服务器配置SSL。在这个例子中,我们使用的是自签名证书。 如果您正在寻找在 Apache/HTTPD 配置SSL,那么你必须
这篇文章 。
第1步:创建证书签名请求(CSR)
为了创建SSL证书,第一个要求是创建私钥和CSR。 CSR是其对域中的所有细节,包括一个公共密钥的文件。首先创建一个目录,建立CSR和key。
# mkdir /etc/lighttpd/ssl/
# cd /etc/lighttpd/ssl/
现在用下面的命令创建CSR和密钥文件。更改名称的文件
example.com.key和
example.com.csr按您的域名。 此命令会要求输入你的域名信息。
了解更多有关创建CSR。
# openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr
Generating a 2048 bit RSA private key
....+++
...............+++
writing new private key to 'example.com.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Delhi
Locality Name (eg, city) [Default City]:Delhi
Organization Name (eg, company) [Default Company Ltd]:youcl Inc.
Organizational Unit Name (eg, section) []:web
Common Name (eg, your name or your server's hostname) []:example.com
Email Address []:user@example.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: [Leave Blank]
An optional company name []: [Leave Blank]
第2步:从CA申请证书
创建CSR后,从任何证书提供商,如GeoTrust,Comodo,Digicert 或 GoDaddy 等请求SSL证书 或创建一个
自签名证书供内部使用。
# openssl x509 -req -days 365 -in example.com.csr -signkey example.com.key -out example.com.crt
您将在一个名为
example.com.crt当前目录获取创建的证书文件。现在,通过在一个文件中结合密钥文件和证书创建PEM文件
# cat example.com.key example.com.crt > example.com.pem
第3步:设置虚拟主机使用SSL
编辑Lighttpd的配置文件
/etc/lighttpd/lighttpd.conf并添加下列值。
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/youcl.com.pem"
# ssl.ca-file = "/etc/lighttpd/ssl/CA_issuing.crt"
server.name = "site1.youcl.com"
server.document-root = "/sites/vhosts/site1.youcl.com/public"
server.errorlog = "/var/log/lighttpd/site1.youcl.com.error.log"
accesslog.filename = "/var/log/lighttpd/site1.youcl.com.access.log"
}
第4步:验证配置和重新启动Lighttpd
在开始的lighttpd服务之前,请确认配置文件的语法。
# lighttpd -t -f /etc/lighttpd/lighttpd.conf
Syntax OK
如果你发现所有的语法是ok 的,让我们重新开始服务
# service lighttpd restart