前置条件:
- 服务器已经安装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
评论区