nginx配置https
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx配置https相关的知识,希望对你有一定的参考价值。
参考技术A 我的服务器使用的系统是CentOS 6,因此直接使用yum安装nginx,其它系统以及版本可能有所差异。step1, 先要安装nginx的yum源
执行完上面的命令后,我们使用命令 yum info nginx 查看一下Nginx 软件包信息.
step2, 安装nginx, 使用命令 yum install nginx 安装,等待安装完成。
检查nginx 版本 nginx -v
这个时候我们发现nginx已经安装成功了。
使用yum安装的nginx, 默认配置文件放在 /etc/nginx/nginx.conf ,使用命令 nginx -t 可以拿到配置文件的存放路径;这个命令用于测试配置文件语法是否准确无误。
使用vim查看配置内容如下:
看最后一行 include /etc/nginx/conf.d/*.conf; 便知nginx include 了 ./conf.d/ 下面的所有配置文件,因此我们也可以将配置文件放在 ./conf.d/ 目录下。
在配置Https 之前,我们需要准备好购买的SSL证书文件,我使用的是阿里云提供的免费证书。
1、将证书文件传到服务器,我使用的是 scp 命令将证书拷贝到服务器的 /etc/nginx/ssl_certs/ 目录下面。现在该目录下有两个文件, xxx.pem 和 xxx.key 。
2、在创建配置文件 /etc/nginx/conf.d/ 目录下创建 xxx.conf 文件
将如下配置copy到配置文件中
最后重启 nginx, 使用 service nginx restart 命令重启。
访问 https://draw.lyan.me ,(PS: 我的服务器配置了dns解析),即可发现https已经生效
nginx 配置https
nginx 配置https
首先看下nginx的编译安装后是否缺少http_ssl_module
我自己的nginx安装目录是/usr/local/nginx
cd /usr/local/nginx/sbin
./nginx -V
结果是:configure arguments: --with-openssl=/root/openssl-1.0.2l
发现没有ssl模块儿。
这时候需要切换目录到nginx的源码包,执行./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
然后执行make命令
这里不要进行make install,否则就是覆盖安装
备份原有的已经安装好的nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态,在ngnix安装目录的sbin目录下执行./nginx -s quit命令)
cp ./objs/nginx /usr/local/nginx/sbin/
在时候执行nginx安装目录sbin目录下的nginx命令 /usr/local/nginx/sbin/nginx -V
查看configure arguments,如果包含--with-http_ssl_module,则说明已经成功加入了https模块儿
修改nginx安装目录下的conf目录中的nginx.conf配置文件
在最后加入
server {
listen 443 ssl;
#设置你申请的域名
server_name www.myhttpstest.com;
root html;
index index.html index.htm;
ssl_certificate ../cert/214814584650232.pem;
ssl_certificate_key ../cert/214814584650232.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#设置长连接
keepalive_timeout 70;
#减少点击劫持
add_header X-Frame-Options DENY;
#禁止服务器自动解析资源类型
add_header X-Content-Type-Options nosniff;
#防XSS攻击
add_header X-Xss-Protection 1;
location / {
root html;
index index.html index.htm;
}
}
执行/usr/local/nginx/sbin/nginx -t
检查nginx配置文件是否正确
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
重新加载nginx配置文件/usr/local/nginx/sbin/nginx -s reload(前提是nginx在运行),如果没有运行直接启动nginx,/usr/local/nginx/sbin/nginx
修改本机的hosts文件
127.0.0.1 www.myhttpstest.com
访问https://www.myhttpstest.com
以上是关于nginx配置https的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu 14.04 nginx 1.12.2 配置https遇见的坑
expressjs设置tls连接https nginx服务器请求