Nginx 开启 SSL,配置 HTTPS 访问

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

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

推荐:【阿里云感恩回馈,云产品冰点价】新用户专享 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 日。

    315 引用 • 547 回帖

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • 安全

    安全永远都不是一个小问题。

    203 引用 • 818 回帖 • 2 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 811 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 666 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 448 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    239 引用 • 224 回帖
  • Follow
    4 引用 • 12 回帖 • 11 关注
  • 倾城之链
    23 引用 • 66 回帖 • 168 关注
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖
  • 印象笔记
    3 引用 • 16 回帖
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 549 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 3 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 166 关注
  • MongoDB

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

    91 引用 • 59 回帖 • 2 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 32 关注
  • 996
    13 引用 • 200 回帖 • 6 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖 • 1 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 2 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    42 引用 • 130 回帖 • 250 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 690 关注
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 107 关注
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖 • 1 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    5 引用 • 7 回帖 • 1 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖 • 3 关注
  • Visio
    1 引用 • 2 回帖
  • 音乐

    你听到信仰的声音了么?

    62 引用 • 512 回帖 • 2 关注