Nginx 之 实现https

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 之 实现https相关的知识,希望对你有一定的参考价值。

1  概述


要利用nginx软件实现https的页面,用到ngx_http_ssl_module模块,本文将介绍该模块的几个常见用法,实现一台物理机上创建多个https站点。注意通过nginx -V查看,如果有TLS SNI support enabled,表示支持在一台主机上支持多个https主机


2  模块配置


.1ssl

ssl  on | off;

为指定虚拟机启用HTTPS  protocol,建议用listen指令代替

.2ssl_certificate

ssl_certificate  file;

当前虚拟主机使用PEM格式的证书文件

创建自签名的证书文件

cd /etc/pki/tls/certs/
make nginx6.crt

将生成的私钥文件解密

openssl rsa -in nginx6.key-out nginx66.key

将这两个文件复制到配置文件里指定的路径即可

在客户的上查看生成的证书信息,命令如下

openssl s_client -connect  www.e.com:443

.3ssl_certificate_key

ssl_certificate_key  file;

当前虚拟主机上与其证书匹配的私钥文件

.4ssl_protocols

ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2];

 支持ssl协议版本,默认为后三个,主流版本是[TLSv1.2]

.5ssl_session_cache 

ssl_session_cache off | none | [builtin[:size]] [shared:name:size];

builtin[:size]:使用OpenSSL内建缓存,为每worker进程私有,开启多大的空间来作为缓存空间

[shared:name:size]:在各worker之间使用一个共享的缓存,这样会提高缓存的命中率,提高性能。

.6ssl_session_timeout

ssl_session_timeout  time;

客户端连接可以复用sslsession cache中缓存的ssl参数的有效时长,默认5m


3  配置实例

创建两台虚拟https主机

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;
}



本文出自 “阳光运维” 博客,请务必保留此出处http://ghbsunny.blog.51cto.com/7759574/1977230

以上是关于Nginx 之 实现https的主要内容,如果未能解决你的问题,请参考以下文章

日更第17日: (翻)nginx加固之防御缓冲区溢出攻击

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

Nginx 服务器 之Nginx与tomcat实现负载均衡

基于nginx+swoole+phalcon+atlas实现的高性能负载均衡集群系列之构建篇

编译安装Nginx,实现多域名 HTTPS

神奇的nginx之https支持