Nginx配置Https(详细、完整)
Nginx配置Https(详细、完整)
前置条件:
在配置https之前请确保下⾯的步骤已经完成
1、服务器已经安装nginx并且通过http可以正常访问。
2、不会安装nginx的可以参考下这篇⽂章:
3、拥有ssl证书,没有的可以去阿⾥购买或者免费申请⼀年,或者使⽤息签发证书。
如果以上条件都满⾜了,接下来开始配置https
第⼀步:Nginx的ssl模块安装
在配置ssl证书之前,要确保你的nginx已经安装了ssl模块,⼀般情况下⾃⼰安装的nginx都是不存在ssl模块的。
这⾥先检查下⾃⼰是否存在ssl模块:
进⼊到你的nginx安装⽬录下⾯,我的⽬录是在(/usr/local/nginx),如果你的nginx安装步骤和上⾯的⽂章⼀致的话,那你的⽬录和我应该是⼀致的
进⼊到⽬录的sbin⽬录下,输⼊
#注意这⾥是⼤写的V,⼩写的只显⽰版本号
./nginx -V
如果出现 (configure arguments: --with-http_ssl_module), 则已安装(下⾯的步骤可以跳过)。
⼀般情况下都是不存在ssl模块的,接下来进⼊到你的解压缩后的nginx⽬录,注意这⾥不是nginx安装⽬录,是解压缩后的⽬录,我的是在(/usr/local/nginx-1.8.1),进⼊⽬录后,输⼊
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
接下来执⾏
make
#切记不要执⾏make install,否则会重新安装nginx
上述操作执⾏完成以后,你的⽬录下会出现objs⽂件夹,⽂件夹内存在nginx⽂件,如图:
接下来使⽤新的nginx⽂件替换掉之前安装⽬录sbin下的nginx,注意这⾥的替换的时候可以先将之前的⽂件备份下,停掉nginx服务
./nginx -s stop #停⽌nginx服务
#替换之前的nginx
cp /usr/local/nginx-1.8.1/objs/nginx /usr/local/nginx/sbin/
成功之后,进⼊到nginx安装⽬录下,查看ssl时候成功
#注意这⾥是⼤写的V,⼩写的只显⽰版本号
./nginx -V
#可以看到这⾥出现了configure arguments: --with-http_ssl_module  证明已经安装成功
提⽰:这⾥替换后在执⾏ -V命令如果提⽰权限不⾜,先给这个nginx⽂件提升下权限,通过指令修改,如下:
chmod 111 nginx
第⼆步:配置ssl证书
解压缩下载好的证书(证书⼀般是pem或crt⽂件和key⽂件,这⾥名字可以随便改)将下载好的证书上上传到服务器,我将证书放在了/usr/local/nginx/ssl⽂件夹
#在/usr/local/nginx⽬录下创建ssl⽂件夹
cd /usr/local/nginx
mkdir ssl
第三步:进⾏f配置
进⼊f⽂件下
cd /usr/locla/nginx/conf
#修改f⽂件
f
打开之后⽂件内容如图
可以将没⽤的东西都删除掉,删除的时候注意,括号要对应起来。
然后进⾏配置:
http {
include      pes;
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;
server {
#监听443端⼝
listen 443;
#你的域名
server_p;
ssl on;
#ssl证书的pem⽂件路径
ssl_certificate  /usr/local/nginx/;
#ssl证书的key⽂件路径
ssl_certificate_key /usr/local/nginx/ssl/private122.key;
location / {nginx ssl证书配置
proxy_pass  公⽹地址:项⽬端⼝号;
}
}
server {
listen 80;
server_p;
#将请求转成https
rewrite ^(.*)$ $host$1 permanent;
}
}
注意:这⾥需要在安全组中开放443端⼝。
第四步:在Windows中导⼊证书
第五步:重启nginx
ok,如果上述步骤都完成了,没有问题,接下来只需要重启nginx服务即可。
进⼊sbin⽬录下,输⼊
./nginx -s reload
./nginx -s stop
./nginx
⽆提⽰信息的话,就⼤功告成了。
ok,配置https到此就结束了,不⾜之处还望在评论区指出。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。