nginx配置ssl证书

nginx配置ssl证书

经验文章nimo972025-06-05 17:13:214A+A-

当前使用操作系统centos

1.安装nss-tools

sudo yum install nss-tools

2. 使用mkcert工具生成受信任的本地ssl证书

mkcert工具下载链接:
https://github.com/FiloSottile/mkcert/releases

或者linux命令下载

wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64

3.使文件可执行

chmod +x mkcert-v1.4.4-linux-amd64

4.创建本地CA,加入并且默认加入可信任CA中

sudo ./mkcert-v1.4.4-linux-amd64 -install

5.生成证书,根据域名生成证书 -cert-file 证书放置位置文件 ;-key-file 证书key放置位置文件

sudo
./mkcert-v1.4.4-linux-amd64 -key-file
/home/mkcert/ssl/pro-key.pem -cert-file /home/mkcert/ssl/pro.pem 域名

6.证书生成完成

7.修改名字为需要的名字,例如pro-key.pem为pro-key.key,pro.pem为pro.key

8. 上传到nginx位置


9.修改nginx.conf配置文件

server下添加

listen 443 ssl; #监听端口

listen 8080 ssl; #监听端口

server_name aidog.supconit.com; #访问nginx的域名

port_in_redirect off;


ssl_certificate
/home/supcon/nginx/ssl/supconit.com.crt;
#证书地址

ssl_certificate_key
/home/supcon/nginx/ssl/supconit.com.key; #证书地址


ssl_session_cache shared:SSL:1m; #设置ssl/tls会话缓存的类型和大小

ssl_session_timeout 5m; #客户端可以重用会话缓存中ssl参数的过期时间


ssl_ciphers HIGH:!aNULL:!MD5; #加密套件

ssl_prefer_server_ciphers on; #指定是否服务器密码优先客户端密码


注意出现以下问题解决办法:


一、出现上图问题原因为安装nginx时没有配置 http_ssl_module

解决:

1.查看当前nginx版本:nginx -V


如果没有安装时没有该标记的内容,代表没有安装http_ssl_module

2.去官网下载对应版本nginx或请求下载

wget https://nginx.org/download/nginx-1.21.0.tar.gz


3.解压:

tar -zxvf nginx-1.21.0.tar.gz

4.使用./configure生成Makefile文件,以便可以执行make:

./configure --prefix=/opt/nginx-1.21.0 --with-http_ssl_module

5.执行make命令:

make

Make完成会在文件夹里生成一个objs文件夹

6.切换到原先nginx安装sbin目录,备份内容:

mv nginx nginx_bak

7.把objs文件夹的nginx文件替换到原先nginx文件夹下:

mv nginx /usr/local/nginx/sbin

8.启动nginx

二、nginx想强制http请求转到https

配置文件中添加以下内容

#让http请求重定向到https请求

error_page 497 https://$host$uri?$args;

当 nginx 配置的站点只允许 https 访问时,我们却使用 http 去访问,此时 nginx 会报出 497 错误码。

三、想要https可以访问,http也可以访问,增加如下两个监听接口,https默认访问443,http默认访问80

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7