Nginx配置Https

bridge
2021-06-26 / 0 评论 / 11 点赞 / 1,312 阅读 / 1,639 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-01-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前置条件:

  • 服务器已经安装nginx并且通过http可以正常访问;
  • 拥有ssl证书,没有的可以去阿里云/腾讯云购买或者免费申请一年;

一、Nginx的SSL模块安装

在配置ssl证书之前,要确保你的nginx已经安装了ssl模块,一般情况下自己安装的nginx都是不存在ssl模块的。

检查下自己是否存在SSL模块:

1.进入Ngxin安装目录:

cd /usr/local/nginx/sbin/

2.查看是否安装:

./nginx -V  

如果出现 (configure arguments: --with-http_ssl_module), 则已安装(下面的步骤可以跳过,直接进行《二、配置SSL》)。

安装SSL模块

1.进入解压目录:

cd /opt/nginx/nginx-1.20.2/

2.安装SSL模块:

./configure --with-http_ssl_module

3.执行make命令:

注意:但是不要执行make install,因为make是用来编译的,而make install是安装,不然你整个nginx会重新覆盖的。

make

4.拷贝新生成的程序:

cp objs/nginx /usr/local/nginx/sbin/nginx

5.检查安装结果:

参考步骤:检查下自己是否存在SSL模块;

二、配置ssl证书

1.下载申请好的证书:

2.创建存放证书文件夹(按照自己喜欢):

mkdir /opt/ssl

3.将下载好的证书上传到服务器:

三、进行nginx.conf配置

1.编辑NGINX配置文件

vim /usr/locla/nginx/conf/nginx.conf
http {
 server {
   listen 443;
   server_name liguanqiao.com;
   
   #新增证书模块
   ssl on;
   ssl_certificate  /opt/ssl/liguanqiao.com_bundle.pem;
   ssl_certificate_key /opt/ssl/liguanqiao.com.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;
   
   client_max_body_size 1024m;
   location / {
     proxy_pass http://127.0.0.1:8090;
     proxy_set_header HOST $host;
     proxy_set_header X-Forwarded-Proto $scheme;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
 }

 #将所有http改为https
 server {
   listen 80;
   server_name liguanqiao.com;
   rewrite ^(.*)$ https://$host$1 permanent;
 }
}

events {
  worker_connections  1024;  ## Default: 1024
}

四、重启nginx

1.进入Nginx目录
1.进入Nginx安装目录:

cd /usr/local/nginx/sbin/

2.重启Nginx:

./nginx -s reload

遇到问题

1.第二次配置证书重启的时候,报错

nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

杀掉占用443和80的进程就好了

fuser -k 443/tcp
fuser -k 80/tcp
0

评论区