在nginx中部署https服务的详细步骤

 更新时间:2023年10月12日 10:28:12   作者:钰儿yu1228  
Web服务器一般指网站服务器,可以处理浏览器等Web客户端的请求并返回相应响应,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载,本文主要介绍nginx中部署https服务的具体流程,也是搭建web的开端与主要步骤之一

一、https是什么?

https英文全称是hypertext transfer protocol secure,是以安全为目标的http通道,在http的基础上通过传输加密和身份认证保证了传输过程的安全性。可以有效防止数据窃听与截获泄密,保障网络的安全。https的加密过程需要用到公钥、私钥,流程如下:

二、部署步骤

1.下载SSL证书

在云服务器(阿里云、腾讯云等)上为所购买的域名申请SSL证书,根据服务器的类型点击下载,因此本文选择nginx服务器。本文个人域名以cdn.xxx.xyz为例。

2.上传文件

将下载好的证书压缩包通过xftp上传到nginx安装目录的conf下。此处一定记得要指定目录。 此时可以在conf目录下查看到上传的文件。

[root@lianyu conf]pwd
/usr/local/scnginx99/conf
[root@lianyu conf]ls
cdn.xxx.xyz_nginx.zip  fastcgi.conf.default  fastcgi_params.default  koi-utf  mime.types          nginx.conf   nginx.conf.default  scgi_params.default  uwsgi_params.default
fastcgi.conf                    fastcgi_params        htpasswd                koi-win  mime.types.default  nginx.conf~  scgi_params         uwsgi_params         win-utf

3.解压文件

输入unzip命令对文件进行解压会看到以 .key (私钥)与 .pem(公钥) 结尾的两个文件

[root@lianyu conf] unzip cdn.xxx.xyz_nginx.zip 
Archive:  cdn.xxx.xyz_nginx.zip 
  inflating: cdn.xxx.xyz_nginx/cdn.xxx.xyz_bundle.pem  #公钥
  inflating: cdn.xxx.xyz_nginx/cdn.xxx.xyz.key  #私钥

若显示未找到命令,则需要安装解压软件后,再进行解压操作

[root@lianyu conf] yum install unzip -y

4.在nginx.conf配置文件中,修改https服务

在nginx的编译安装中应在配置项,添加--with-http_ssl_module,启用该模块nginx.conf的配置文件中才会展示https服务的部分。安装的具体操作步骤可见上一条博客。

在nginx安装目录下的conf文件中编辑nginx.conf文件,修改https的配置,在该模块中更改具体的域名,公钥,私钥,其他代码行保持默认并取消注释。将server_name 修改成证书绑定的域名,ssl_certificate 修改成证书解压后得到的 .pem 文件 ,将ssl_certificate_key 修改成解压后得到的 .key 文件,其他代码保持默认。

    server {
        listen       443 ssl;
        server_name  cdn.xxx.xyz; #证书绑定的域名
        ssl_certificate   cdn.xxx.xyz_nginx/cdn.xxx.xyz_bundle.pem  ; #解压文件后对应的公钥
        ssl_certificate_key  cdn.xxx.xyz_nginx/cdn.xxx.xyz.key  ; #解压文件后对应的私钥
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location / {
            root   html;
            index  index.html index.htm;
        }
    }

修改保存后检查配置语法的正确性以及更新配置文件

[root@lianyu conf] nginx -t
nginx: the configuration file /usr/local/scnginx99/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/scnginx99/conf/nginx.conf test is successful
[root@lianyu conf] nginx -s reload

5.修改hosts文件

hosts文件路径:C:\Windows\System32\drivers\etc
在hosts文件中添加ip与域名
如:192.168.81.128 cdn.xxx.xyz

在windows的cmd中使用ping命令验证hosts文件是否修改成功
C:\Users\钰儿yu>ping cdn.xxx.xyz

正在 Ping cdn.xxx.xyz [192.168.81.128] 具有 32 字节的数据:
来自 192.168.81.128 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.81.128 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.81.128 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.81.128 的回复: 字节=32 时间<1ms TTL=64

若显示ip地址为本人的私网ip而不是公网ip,则表示修改hosts文件步骤成功。

6.http跳转到https中

为保证无论是访问80端口还是443端口都能成功访问至https协议的安全网站中,可在http中的server里另外加入一段永久重定向的代码。

server {
    listen 80;
    server_name cdn.xxx.xyz;
    return 301 https://cdn.xxx.xyz;
        }
   

三、注意事项

以上就是今天要讲的内容,本文详细介绍了在nginx服务器中部署https的详细步骤,根据本人操作,提出几个容易忽视的错误:

1.在上传文件时,需要注意将文件上传至nginx下载目录的conf中。

2.修改配置文件后,通过nginx -t检查语法错误,若出现以下报错,考虑在配置文件中是否多打或少打花括号 { 

[root@lianyu conf]# nginx -t
nginx: [emerg] cannot load certificate "/usr/local/scnginx99/conf/cdn.xxx.xyz_bundle.pem": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/usr/local/scnginx99/conf/cdn.xxx.xyz_bundle.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: configuration file /usr/local/scnginx99/conf/nginx.conf test failed

以上就是在nginx中部署https服务的详细步骤的详细内容,更多关于nginx部署https服务的资料请关注脚本之家其它相关文章!

相关文章

  • Windows系统下安装及部署Nginx详细教程(含多个站点部署)

    Windows系统下安装及部署Nginx详细教程(含多个站点部署)

    Nginx是一个很强大的高性能Web和反向代理服务,也是一种轻量级的Web服务器,可以作为独立的服务器部署网站,应用非常广泛,这篇文章主要给大家介绍了关于Windows系统下安装及部署Nginx(含多个站点部署)的相关资料,需要的朋友可以参考下
    2024-01-01
  • Nginx+Tomcat实现负载均衡、动静分离的原理解析

    Nginx+Tomcat实现负载均衡、动静分离的原理解析

    这篇文章主要介绍了Nginx+Tomcat实现负载均衡、动静分离的原理解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • centos8中使用yum安装nginx的详细过程

    centos8中使用yum安装nginx的详细过程

    这篇文章主要介绍了centos8中怎样使用yum安装 nginx,centos8和centos7安装nginx有点点不一样,centos8 自带了nginx 1.14.1 ,我们先升级到新稳定版1.20.1,具体安装方法跟随小编一起学习下吧
    2023-03-03
  • nginx 作为反向代理实现负载均衡的例子

    nginx 作为反向代理实现负载均衡的例子

    以下我们就来举例说明如何使用 nginx 实现负载均衡。因为nginx在处理并发方面的优势,现在这个应用非常常见。
    2010-12-12
  • Nginx ingress controller高可用的实现

    Nginx ingress controller高可用的实现

    本文主要介绍了Nginx ingress controller高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • 使用Nginx和pm2部署Next.js项目

    使用Nginx和pm2部署Next.js项目

    本文主要介绍了使用Nginx和pm2部署Next.js项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Nginx中共享session会话配置方法例子

    Nginx中共享session会话配置方法例子

    这篇文章主要介绍了Nginx中共享session会话配置方法例子,最后使用第三方模块upstream_hash解决了这个问题,需要的朋友可以参考下
    2014-07-07
  • nginx和Apache配置SSL证书的实现步骤

    nginx和Apache配置SSL证书的实现步骤

    SSL证书是一种数字证书,用于加密在网络上发送的数据并保护敏感信息的安全性,本文主要介绍了nginx和Apache配置SSL证书的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • 加速nginx性能: 开启gzip和缓存

    加速nginx性能: 开启gzip和缓存

    nginx 是一个高性能的 Web 服务器,之前也写过一些关于 nginx 的文章。为了提高博客的响应速度,可以从设置 nginx 的 gzip 和缓存这2方面入手。为字体开启 gzip 和缓存能大大减少带宽的消耗
    2017-03-03
  • Nginx(PHP/fastcgi)的PATH_INFO问题

    Nginx(PHP/fastcgi)的PATH_INFO问题

    PATH_INFO是一个CGI 1.1的标准,经常用来做为传参载体. 比如, 我们可以使用PATH_INFO来代替Rewrite来实现伪静态页面, 另外不少PHP框架也使用PATH_INFO来作为路由载体.
    2011-08-08

最新评论