Nginx 开启 SSL,配置 HTTPS 访问

本贴最后更新于 1866 天前,其中的信息可能已经渤澥桑田

我购买的是阿里云服务器和阿里云域名,我想着两个在一起,方便使用(也可以不在一起,购买的哪家的服务器,就需要在哪家备案,不要搞混了哦)。

推荐:【阿里云感恩回馈,云产品冰点价】新用户专享 1 折起--云服务器 82 元/年起,这里有专享低价和代金券 》

第一步申请证书:
1.png
2.png
3.png
4.png

  • 提交审核大概需要等 5-15 分钟就签发下来了
    5.png
  • 签发成功后,就可以下载所需的证书文件
    6.png
    7.png

第二步:Nginx 上的配置

1、nginx的相关配置一般都在/etc/nginx/` 目录,因为 nginx 版本的不同,该目录中的内容一般都会不同,该目录在我机子上的内容如下所示:

$ ls conf.d fastcgi_params koi-utf koi-win mime.types modules nginx.conf scgi_params uwsgi_params win-utf

2、nginx.conf 是最最最重要的配置文件,其中 nginx.conf 文件又会把 conf.d/ 目录中 *.conf 文件内容直接 include 进来,include 语句主要是这几句:

include /etc/nginx/conf.d/*.conf;

下面介绍一下我机子上 nginx.conf 文件的内容,主要是一些基础配置。我们可以看到最后一行 include 的内容,就是上面的内容。个人建议把一些站点的配置都放到 ./conf.d 目录中,方便日后管理(增删只有删除相应文件即可)。

user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }

3、上面介绍完nginx相关之后,开始正式配置。为了方便日后SSL证书的管理,我们在 etc/nginx/conf.d 目录中创建一个 cert 目录,然后把下载下来的证书拷贝到/etc/nginx/conf.d/cert` 目录中。

$ ls XXX.com.key XXX.com.pem

4、在 etc/nginx/conf.d` 目录中创建一个 xxx.conf 文件,在 xxx.confi 文件内容,如下:

upstream backend { server localhost:8080; # 监听端口 } server { listen 80; server_name www.xjy520.vip; rewrite ^(.*)$ https://$host$1 permanent; #所有的http请求,全部重定向到https中。 } server { listen 443 ssl; server_name www.xjy520.vip; access_log /var/log/nginx/xjy520.access.log main; error_log /var/log/nginx/xjy520.error.log warn; ssl_certificate /etc/nginx/conf.d/cert/xjy520.pem; ssl_certificate_key /etc/nginx/conf.d/cert/xjy520.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; location / { proxy_pass http://backend$request_uri; #proxy_set_header Host $http_host; #proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; } }

`5、需要注意一下几点:

  • server_name 需要配置为你自己的域名昂;
  • proxy_pass http://backend$request_uri; 这个是请求转发到你内网服务上了;
  • ssl_certificate /etc/nginx/conf.d/cert/XXX.com.pem; pem 文件的路径;
  • ssl_certificate_key /etc/nginx/conf.d/cert/XXX.com.key; ket 文件的路径;
  • http 的重定向,为了在使用 http 访问站点时,能自动跳转到 https 访问,下面我们设置一下重定向
server { listen 80; server_name www.xjy520.vip; rewrite ^(.*)$ https://$host$1 permanent; }

`6、最后一步重启 nginx 即可
$ systemctl reload nginx
8.png

本人软件开发 9 年多(会 JAVA、H5、VUE、小程序......等算是全栈开发了),已经回家创业了,专接私活、小活,如果有可以找我(Q:1320659513)。

也可以请我喝杯咖啡,与你畅谈人生。感谢各位大佬!!!
wx.jpg
zfb.jpg

  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    316 引用 • 547 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
Ralap
拥有狼的智慧和狼的忠告

推荐标签 标签

  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    25 引用 • 373 回帖
  • OnlyOffice
    4 引用 • 24 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    84 引用 • 414 回帖 • 1 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 7 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 749 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 670 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    59 引用 • 22 回帖 • 2 关注
  • 叶归
    21 引用 • 77 回帖 • 30 关注
  • 音乐

    你听到信仰的声音了么?

    62 引用 • 512 回帖
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    34 引用 • 37 回帖 • 552 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 697 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 673 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    16 引用 • 143 回帖 • 1 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 48 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 420 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 16 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 4 关注
  • Access
    1 引用 • 3 回帖
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 234 回帖
  • 导航

    各种网址链接、内容导航。

    45 引用 • 177 回帖
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    558 引用 • 677 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    35 引用 • 468 回帖 • 759 关注
  • Office

    Office 现已更名为 Microsoft 365. Microsoft 365 将高级 Office 应用(如 Word、Excel 和 PowerPoint)与 1 TB 的 OneDrive 云存储空间、高级安全性等结合在一起,可帮助你在任何设备上完成操作。

    5 引用 • 34 回帖
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    63 引用 • 289 回帖