素材巴巴 > 程序开发 >

nginx配置https ssl证书

程序开发 2023-09-07 15:49:48

参考配置: https://help.aliyun.com/document_detail/98728.html?spm=5176.b657008.0.0.5cde56a7q1iD5x

1.下载证书

在这里插入图片描述

2. 在nginx/conf目录新建cert目录,把两个证书文件放进去

cd /usr/local/nginx/conf  #进入Nginx默认安装目录。如果您修改过默认安装目录,请根据实际配置进行调整。
 mkdir cert  #创建证书目录,命名为cert。
 

3. 修改nginx配置文件nginx.conf

vim /usr/local/nginx/conf/nginx.conf
 

进入编辑模式

  1. yourdomain.com:替换成证书绑定的域名。
    如果您购买的是单域名证书,需要修改为单域名(例如www.aliyun.com);如果您购买的是通配符域名证书,则需要修改为通配符域名(例如*.aliyun.com)[b2buat.trav*****ate.com]。
  2. cert-file-name.pem:替换成您在步骤3上传的证书文件的名称。
  3. cert-file-name.key:替换成您在步骤3上传的证书密钥文件的名称。
#以下属性中,以ssl开头的属性表示与证书配置有关。
 server {listen 443 ssl;#配置HTTPS的默认访问端口为443。#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。root html;index index.html index.htm;ssl_certificate cert/cert-file-name.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。ssl_certificate_key cert/cert-file-name.key; #需要将cert-file-name.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; #表示使用的TLS协议的类型。ssl_prefer_server_ciphers on;location / {root html;  #站点目录。index index.html index.htm;}
 }
 

http强跳转https

server {listen 80;server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。location / {index index.html index.htm;}
 }
 

4. 重启nginx

cd /usr/local/nginx/sbin  #进入Nginx服务的可执行目录。
 ./nginx -s reload  #重新载入配置文件。/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
 

5.会发现启动会报错, Nginx的SSL模块没有开启

切换到源码包:

cd /usr/local/nginx/nginx-1.15.8
 

在这里插入图片描述
查看nginx原有的模块

/usr/local/nginx/sbin/nginx -V
 

在configure arguments:后面显示的原有的configure参数如下:

--prefix=/usr/local/nginx --with-http_stub_status_module
 

那么我们的新配置信息就应该这样写:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
 

运行上面的命令即可,等配置完
配置完成后,运行命令

make
 

这里不要进行make install,否则就是覆盖安装
然后备份原有已安装好的nginx

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
 

然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态)

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

然后启动nginx,仍可以通过命令查看是否已经加入成功

/usr/local/nginx/sbin/nginx -V 
 

在这里插入图片描述
重启nginx即可

6. 还有报错

nginx: [emerg] "root" directive is duplicate in /etc/nginx/server/blogs.conf:7
 

错误原因是:在配置文件时,访问路径设置了两个,重复配置webroot路径导致,去掉一个就可以了。

在这里插入图片描述


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。