Nginx 配置 HTTPS 完整过程[通俗易懂]

Nginx 配置 HTTPS 完整过程[通俗易懂]配置站点使用https,并且将http重定向至https。1.nginx的ssl模块安装查看nginx是否安装http_ssl_module模块。$/usr/local/nginx/sbin/nginx-V![在这里插入图片描述](https://img-blog.csdnimg.cn/2018112610054317.png)如果出现configure…

大家好,又见面了,我是你们的朋友全栈君。

配置站点使用 https,并且将 http 重定向至 https。

1. nginx 的 ssl 模块安装

  • 查看 nginx 是否安装 http_ssl_module 模块。
$ /usr/local/nginx/sbin/nginx -V

Nginx 配置 HTTPS 完整过程[通俗易懂]

如果出现 configure arguments: --with-http_ssl_module, 则已安装(下面的步骤可以跳过,进入 nginx.conf 配置)。

# 下载安装包到 src 目录
$ cd /usr/local/src
$ wget http://nginx.org/download/nginx-1.14.1.tar.gz
  • 解压安装包。
$ tar -zxvf nginx-1.14.1.tar.gz
  • 配置 ssl 模块。
$ cd nginx-1.14.1
$ ./configure --prefix=/usr/local/nginx --with-http_ssl_module
  • 使用 make 命令编译(使用make install会重新安装nginx),此时当前目录会出现 objs 文件夹。
  • 用新的 nginx 文件覆盖当前的 nginx 文件。
$ cp ./objs/nginx /usr/local/nginx/sbin/
  • 再次查看安装的模块(configure arguments: --with-http_ssl_module说明ssl模块已安装)。
$ /usr/local/nginx/sbin/nginx -V

nginx version: nginx/1.14.1

configure arguments: –with-http_ssl_module

2. ssl 证书部署

  • 下载申请好的 ssl 证书文件压缩包到本地并解压(这里是用的 pem 与 key 文件,文件名可以更改)。
  • 在 nginx 目录新建 cert 文件夹存放证书文件。
$ cd /usr/local/nginx
$ mkdir cert
  • 将这两个文件上传至服务器的 cert 目录里。
    这里使用 mac 终端上传至服务器的 scp 命令(这里需要新开一个终端,不要使用连接服务器的窗口):
$ scp /Users/yourname/Downloads/ssl.pem root@xxx.xx.xxx.xx:/usr/local/nginx/cert/
$ scp /Users/yourname/Downloads/ssl.key root@xxx.xx.xxx.xx:/usr/local/nginx/cert/

scp [本地文件路径,可以直接拖文件至终端里面] [<服务器登录名>@<服务器IP地址>:<服务器上的路径>]

3. nginx.conf 配置

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

  • 配置 https server。
    注释掉之前的 http server 配置,新增 https server:
server {
    # 服务器端口使用443,开启ssl, 这里ssl就是上面安装的ssl模块
    listen       443 ssl;
    # 域名,多个以空格分开
    server_name  baidu.com www.baidu.com;
<span class="hljs-comment"># ssl证书地址</span>
<span class="hljs-attribute">ssl_certificate</span>     /usr/local/nginx/cert/ssl.pem;  <span class="hljs-comment"># pem文件的路径</span>
<span class="hljs-attribute">ssl_certificate_key</span>  /usr/local/nginx/cert/ssl.key; <span class="hljs-comment"># key文件的路径</span>

<span class="hljs-comment"># ssl验证相关配置</span>
<span class="hljs-attribute">ssl_session_timeout</span>  <span class="hljs-number">5m</span>;    <span class="hljs-comment">#缓存有效期</span>
<span class="hljs-attribute">ssl_ciphers</span> ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;    <span class="hljs-comment">#加密算法</span>
<span class="hljs-attribute">ssl_protocols</span> TLSv1 TLSv1.<span class="hljs-number">1</span> TLSv1.<span class="hljs-number">2</span>;    <span class="hljs-comment">#安全链接可选的加密协议</span>
<span class="hljs-attribute">ssl_prefer_server_ciphers</span> <span class="hljs-literal">on</span>;   <span class="hljs-comment">#使用服务器端的首选算法</span>

<span class="hljs-attribute">location</span> / {
    <span class="hljs-attribute">root</span>   html;
    <span class="hljs-attribute">index</span>  index.html index.htm;
}

}

  • 将 http 重定向 https
server {
    listen       80;
    server_name  baidu.com www.baidu.com;
    return 301 https://$server_name$request_uri;
}

4. 重启 nginx

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

如果 80 端口被占用,用kill [id]来结束进程:

# 查看端口使用
$ 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 21307/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0: LISTEN 3072/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0? LISTEN 21307/nginx: master

# 结束 80 端口进程
$ kill 21307

再次重启 nginx :

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

无信息提示就成功啦~

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

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

(0)
上一篇 2022年7月14日 上午11:36
下一篇 2022年7月14日 上午11:46


相关推荐

  • 姿态估计与行为识别(行为检测、行为分类)的区别[通俗易懂]

    姿态估计与行为识别(行为检测、行为分类)的区别[通俗易懂]姿态估计和行为识别作为计算机视觉的两个领域,对于新人来说,较为容易弄混姿态估计和行为识别两个概念。 姿态估计(PoseEstimation)是指检测图像和视频中的人物形象的计算机视觉技术,可以确定某人的某个身体部位出现在图像中的位置,也就是在图像和视频中对人体关节的定位问题,也可以理解为在所有关节姿势的空间中搜索特定姿势。简言之,姿态估计的任务就是重建人的关节和肢干,其难点主要在于…

    2022年6月21日
    29
  • Linux命令之设置附加组和用户登录Shell

    Linux命令之设置附加组和用户登录Shell从今天开始小编决定用 markdown 来编辑博文啦 不断尝试新的东西拥抱未来正是我的标签 话不多说 今天学习的命令主要是有 usermod 设置主组和附加组 usermod 指定用户登录 Shellwhich 查看命令所在位置 1 usermod 设置主组和附件组 usermod 用来设置用户的主组 附加组和登录 Shell 命令格式如下 主组 通常在新建用户时指定 在 etc passwd 的第四

    2026年2月27日
    2
  • Werkzeug框架

    Werkzeug框架在我们使用Flask以及Werkzeug框架的过程中,经常会遇到如下三个概念:Local、LocalStack和LocalProxy。尤其在学习Flask的RequestContext和AppContext的过程中,这几个概念出现的更加频繁,另外很多Flask插件都会使用这三个概念对应的技术。那么这三个东西到底是什么?我们为什么需要它们?以及如何使用呢?本篇文章主要就是来解答这些问题。…

    2022年10月6日
    2
  • vboxmanage的使用

    vboxmanage的使用下面介绍使用VboxManage来进行操作系统的安装1、首先我们需要安装和Virtualbox对应版本的扩展包vboxmanageextpackinstallxxx.vbox-extpack查看已经安装的扩展包命令:VBoxManagelistextpack…

    2022年6月6日
    65
  • 购物网页设计php实验报告,购物网站设计-Web实验报告

    购物网页设计php实验报告,购物网站设计-Web实验报告购物网站设计 Web 实验报告 JIANGSUUNIVE 班级 学生姓名 学号 完成时间 2014 年 11 月 18 日购物网站设计报告购物网站设计报告一 设计要求 1 购物车包含注册页面 登录页面 购物页面 购物车四个页面 2 在购物页面中 将页面信息与数据库绑定 直接将数据库中的内容显示到网页上 另外 对 名称 设计超链接 点击进入商品的详

    2026年3月19日
    2
  • [阿里云]Redis的6379端口开通访问所踩到的坑

    [阿里云]Redis的6379端口开通访问所踩到的坑阿里云上Redis的6379端口开通访问所踩到的坑简单记一下踩到的坑:首先要现在阿里云的控制台开启相应的端口,参考以下文章:(ESC)https://blog.csdn.net/Shenpibaipao/article/details/83932150(轻型应用)https://blog.csdn.net/Shenpibaipao/article/details/79767766接…

    2022年5月7日
    46

发表回复

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

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