手把手教你Nginx 配置 HTTPS 完整过程

手把手教你Nginx 配置 HTTPS 完整过程今天作为程序员专属得节日 1024 程序员节是广大程序员的共同节日 1024 是 2 的十次方 二进制计数的基本计量单位之一 针对程序员经常周末加班与工作日熬夜的情况 部分互联网机构倡议每年的 10 月 24 日为 1024 程序员节 在这一天建议程序员拒绝加班 程序员就像是一个个 1024 以最低调 踏实 核心的功能模块搭建起这个科技世界 1G 1024M 而 1G 与 1 级谐音 也有一级棒的意思 当然在我们日常开发过程中 监控也是必不可少得 所以今天我们就来了解下 zabbix 监控 1 Zabbix 简介 zabbix 是一个基于

相信大家在现有项目里都会通过https访问,我们今天得教程就是通过配置nginx实现https访问。

  • Nginx专栏

    • 手把手教你Nginx常用模块详解之ngx_http_access_module(一)
    • 手把手教你Nginx常用模块详解之ngx_http_addition_module(二)
    • 手把手教你Nginx常用模块详解之ngx_http_api_module(三)
    • 手把手教你Nginx常用模块详解之ngx_http_gzip_module(四)
    • 手把手教你Nginx常用模块详解之ngx_http_limit_conn_module(五)
    • 手把手教你Nginx常用模块详解之ngx_http_upstream_module(六)
    • 手把手教你Nginx常用模块详解之ngx_stream_ssl_module(七)
    • 手把手教你Nginx常用模块详解之ngx_stream_upstream_module(八)
    • 手把手教你Nginx常用模块详解之ngx_http_perl_module(九)
    • 手把手教你Nginx常用模块详解之ngx_http_rewrite_module(十)
    • 手把手教你Nginx常用模块详解之ngx_http_status_module(十一)

nginx配置HTTPS前置条件

服务器上已经安装nginx服务,已经具备http访问; nginx服务器是否已经安装ssl模块得支持; 是否已经拥有ssl证书,如果没有可以去阿里云或者腾讯云免费申请; 

1,证书申请

证书申请前往阿里云SSL证书申请,选择免费证书申请即可

在这里插入图片描述

2 nginx SSL模块是否支持

查看nginx是否安装http_ssl_module模块
./nginx -V 

在这里插入图片描述
如果看到我上图标记得 configure arguments: –with-http_ssl_module, 则已安装(可以直接跳过nginx安装ssl支持步骤,进入 nginx.conf 配置)。

3,nginx安装

3.1 nginx官网地址

3.2 下载tar包到服务器目录

cd /home/somnus wget http://nginx.org/download/nginx-1.18.0.tar.gz 

3.3 解压安装包

tar -zxvf nginx-1.18.0.tar.gz 

3.4 配置ssl模块

cd nginx-1.18.0 ./configure --prefix=/usr/local/nginx --with-http_ssl_module 

我们只需要执行以上命令即可,由于我服务器上还有其他模块依赖

3.5 接下来执行命令编译

3.6 命令拷贝复制

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

3.7 再次查看安装的模块(configure arguments: –with-http_ssl_module说明ssl模块已安装)。

./nginx -V nginx version: nginx/1.18.0 … configure arguments: –with-http_ssl_module 

4. ssl 证书部署

 cd /usr/local/nginx mkdir cert 

4.1. nginx.conf 配置

编辑 /usr/local/nginx/conf/nginx.conf 配置文件:

 server { 
    listen 443 ssl; server_name somnus.test.com; ssl_certificate ../cert/somnus.test.com.pem; ssl_certificate_key ../cert/somnus.test.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_protocols TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ...... } 

4.2 将 http 重定向 https

server { 
    listen 80; server_name somnus.test.com; #将请求转成https rewrite ^(.*)$ https://$host$1 permanent; } 

4.5 重启 nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 

如果 80 端口被占用,可以通过kill命令来进行结束进程:

5 查看端口使用

 netstat -lntp 

执行看到以下结果就说明我们成功了

[root@iZi5u1azluu464tfbesf3aZ conf]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3322/nginx: master tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2310/sshd tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3322/nginx: master 

5.1 结束nginx端口进程

5.1 查看nginx 进程命令

ps aux | grep nginx 

在这里插入图片描述

5.2 执行结束命令

kill -9 3322 

5.1 重启 nginx :

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 

       以上就是我们今天的教程,如果本文对你有所帮助,欢迎关注点赞,分享给您身边的朋友。您的鼓励就是对我的最大动力。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228374.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午7:10
下一篇 2026年3月16日 下午7:11


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号