一、Nginx的安装
(1)由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装:
$ yum install gcc-c++
$ yum install pcre pcre-devel
$ yum install zlib zlib-devel
$ yum install openssl openssl--devel
(2)安装之前,最好检查一下是否已经安装有nginx
$ find -name nginx
如果系统已经安装了nginx,那么就先卸载
$ yum remove nginx
(3)首先进入/usr/local目录
$ cd /usr/local
从官网下载最新版的nginx
$ wget http://nginx.org/download/nginx-1.8.1.tar.gz
(4)解压nginx压缩包
$ tar -zxvf nginx-1.8.1.tar.gz
会产生一个nginx-1.8.1 目录,这时进入nginx-1.8.1目录
$ cd nginx-1.8.1
(5)接下来安装,使用--prefix参数指定nginx安装的目录,make、make install安装
$ ./configure $默认安装在/usr/local/nginx
$ make
$ make install
(6)如果没有报错,顺利完成后,最好看一下nginx的安装目录
$ whereis nginx
安装完毕后,进入安装后目录(/usr/local/nginx)便可以启动或停止它了。
二、Nginx的HTTPS配置
1.修改nginx.conf的相关位置
server {
listen 80;
listen 8011;
listen 10443 ssl;
server_name localhost;
#ssl on;
ssl_certificate /root/ssl/server.cer;
ssl_certificate_key /root/ssl/private.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
# autoindex on;
# autoindex_exact_size_off;
....
2.执行/nginx -t,如果出现“nginx: [emerg] unknown directive "ssl" in ...”错误的处理:
(1)到解压的nginx目录下
$ cd nginx-1.8.1
$ ./configure --with-http_ssl_module
如果出现:**./configure: error: SSL modules require the OpenSSL library.**
需要安装:
$ yum -y install openssl openssl-devel
再执行:
$ ./configure
重新执行:
$ ./configure --with-http_ssl_module
$ make --注:切记不能make install 会覆盖。
(2)备份原来nginx
$ cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
$ cp objs/nginx /usr/local/nginx/sbin/nginx
(3) 重启nginx
$ /usr/local/nginx/sbin/nginx -s reload
注:但有时候执行nginx -s reload 不是很管用,需要kill -9 nginx进程,再重新启动。
(记一次在配置nginx SSL时踩过的坑,执行nginx -s reload后,telnet 127.0.0.1 443 发现端口怎 么也不通,就这样折腾了好久,最后把nginx的进程kill了,重启启动,才OK了)
1. openssl s_client -connect you.domain.com:443
这条命令可以查看你的证书内容
2.openssl s_client -tls1_1 -connect you.domain.com
:443 可以查看SSL对TLS版本的支持
如果出现上图,表示支持。
表示不支持。