1 概述
要利用nginx软件实现https的页面,用到ngx_http_ssl_module模块,本文将介绍该模块的几个常见用法,实现一台物理机上创建多个https站点。注意通过nginx -V查看,如果有TLS SNI support enabled,表示支持在一台主机上支持多个https主机
2 模块配置
.1、ssl
ssl on | off; 为指定虚拟机启用HTTPS protocol,建议用listen指令代替 .2、ssl_certificate ssl_certificate file; 当前虚拟主机使用PEM格式的证书文件 创建自签名的证书文件 1
2
| cd /etc/pki/tls/certs/
make nginx6.crt
|
将生成的私钥文件解密 1
| openssl rsa -in nginx6.key-out nginx66.key
|
将这两个文件复制到配置文件里指定的路径即可
在客户的上查看生成的证书信息,命令如下
.3、ssl_certificate_key
ssl_certificate_key file; 当前虚拟主机上与其证书匹配的私钥文件 .4、ssl_protocols ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2]; 支持ssl协议版本,默认为后三个,主流版本是[TLSv1.2] .5、ssl_session_cache ssl_session_cache off | none | [builtin[:size]] [shared:name:size]; builtin[:size]:使用OpenSSL内建缓存,为每worker进程私有,开启多大的空间来作为缓存空间 [shared:name:size]:在各worker之间使用一个共享的缓存,这样会提高缓存的命中率,提高性能。 .6、ssl_session_timeout ssl_session_timeout time; 客户端连接可以复用sslsession cache中缓存的ssl参数的有效时长,默认5m
3 配置实例
创建两台虚拟https主机 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| vim /etc/nginx/conf.d/https.conf
server{
listen 443 ssl;
server_name www.e.com;
root /app/website5;
ssl_certificate /etc/nginx/ssl/nginx5.crt;
ssl_certificate_key/etc/nginx/ssl/nginx5.key;
ssl_session_cache shared:sslcache:20m;
ssl_session_timeout 10m;
}
server{
listen 443 ssl;
server_name www.f.com;
root /app/website6;
ssl_certificate /etc/nginx/ssl/nginx6.crt;
ssl_certificate_key/etc/nginx/ssl/nginx6.key;
ssl_session_cache shared:sslcache:20m;
ssl_session_timeout 10m;
}
|
|