nginx 配置https
Posted -lanfenglanmeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章