1. 首页 > 快讯

Nginx Web服务器 HTTPS 安全证书配置指南

大家好,今天小编来为大家解答以下的问题,关于Nginx Web服务器 HTTPS 安全证书配置指南,这个很多人还不知道,现在让我们一起来看看吧!

1、先说说Nginx-HTTPS加密技术超文本传输安全协议(HTTPS)是一种以安全为目的的HTTP通道。简单来说,它是HTTP的安全版本。 https由两部分组成:HTTP+SSL/TLS,在http的基础上增加了一层加密信息模块。服务器和客户端的信息插入和丢失都会通过TLS进行加密,传输的数据都是加密数据。

为了解决HTTP协议的这些缺点,需要使用另一个协议:HTTPS。为了数据传输的安全性,HTTPS在http的基础上增加了SSL协议。 SSL 依靠证书来验证身份并加密浏览器和服务器之间的通信。

SSL证书是一种数字证书,它采用安全套接字层协议在浏览器和Web服务器之间建立一条安全通道,从而实现客户端和服务器之间数据信息的加密传输,保证了客户端传输信息的安全。双方。被第三方窃听,用户可以通过服务器证书验证所访问的网站是否真实可靠。

[[287266]]

加密的HTTPS 和HTTP 之间的区别: 超文本传输协议HTTP 协议用于在Web 浏览器和网站服务器之间传输信息。 HTTP 协议以明文形式发送内容,并且不提供任何加密数据的方法。如果攻击者截获了网页浏览器与网站服务器之间传输消息中的信息,则可以直接读取。因此,http协议不适合传输一些敏感信息。

HTTPS加密、解密、验证的流程如图所示:

首先,客户端发送请求。服务器收到请求后,申请生成公钥和私钥,并将公钥证书发送给客户端。客户端收到后,通过TLS进行解析和验证。如果证书没有问题,就会在客户端显示。生成加密的随机值并将随机值发送到服务器。服务器收到后用自己的私钥解密得到随机值,然后用这个随机值对内容进行对称加密。服务器将用私钥加密的信息发送给客户端。最后,客户端使用之前生成的私钥对服务器发送的信息进行解密,得到解密后的内容。

1)客户端向服务器发起HTTPS请求。用户在浏览器中输入https URL,然后连接到Nginx服务器的443端口。 2)服务器使用https协议,拥有一套数字证书。证书可以自行配置,也可以向证书管理机构申请。证书的本质是公钥和私钥。 3) 将公钥传输给客户端。证书包含很多信息,比如证书的颁发机构、过期时间等。 4)客户端解析证书,客户端端完成TLS后,会首先验证公钥是否是有效,如颁发机构、过期时间等。如果出现异常,会弹出警告信息,提示证书有问题。如果证书没有问题,会随机生成一个值,然后使用该证书。加密随机值5) 将证书的加密随机值发送给服务器,让服务器获取随机值,后续客户端和服务器可以使用该随机值进行加密和解密6) 服务器解密后private key ,获取客户端传递过来的随机值,然后利用该值对内容进行对称加密。 7) 服务器将带有私钥的加密信息发送给客户端。 8) 客户端使用之前生成的私钥对服务器进行解密。获取发送的信息的解密内容。

2、关于SSL证书互联网的安全通信基于SSL/TLS 协议。 SSL/TLS协议的基本思想是使用公钥加密。即客户端首先向服务器请求公钥,然后使用公钥进行加密。信息,服务器收到密文后,用自己的私钥解密。通过这种加解密机制,可以保证所有信息都是加密传输的,无法被窃听。同时,传输具有验证机制。一旦信息被篡改,就能立即被发现。最后,通过身份证明机制,可以防止身份被冒充。可见,SSL证书主要有两个功能:加密和身份认证。

目前,市场上的SSL证书都是通过第三方SSL证书颁发机构颁发的。常见可靠的第三方SSL证书颁发机构包括DigiCert、GeoTrust、GlobalSign、Comodo等。

根据使用环境的不同,SSL证书可以分为以下类型:

企业级:EV(扩展验证)、OV(组织验证) 个人级:IV(身份验证)、DV(域验证)。

其中EV、OV、IV需要付费。企业用户推荐使用EV或OV证书,个人用户推荐使用IV证书。虽然DV 证书是免费提供的,但它们是最低端的SSL 证书。它不显示组织名称,也不能证明网站的真实身份。它只能验证域名所有权,仅起到信息加密传输的作用。适用于个人网站或非电子商务网站。

3、使用OpenSSL生成私钥文件和CSR文件在Nginx 上配置HTTPS 并不复杂。主要有两个步骤:签署第三方可信SSL证书和配置HTTPS,下面依次介绍。

要配置HTTPS,您需要私钥文件(以.key结尾)和证书文件(以.crt结尾)。证书文件由第三方证书颁发机构颁发。您必须请求第三方证书颁发机构颁发证书文件。您还需要向他们提供证书签名请求文件(以.csr 结尾)。下面简单介绍一下私钥文件和csr文件。

私钥文件:以.key结尾的文件,由证书申请者生成。它是证书申请者的私钥文件,与证书中的公钥配对。 HTTPS握手通信过程中,需要使用私钥对客户端进行解密。客户端发送并经过证书公钥加密的随机数信息是HTTPS加密通信过程中非常重要的文件,在配置HTTPS时必须使用到。 CSR文件:CSR的全称是Certificate Signing Request,是证书签名请求文件。该文件包含申请人的DN(专有名称)和公钥信息。该文件由证书申请者生成,需要提供给第三方。证书颁发机构。证书颁发机构获得CSR文件后,使用其根证书私钥对证书进行加密,生成CRT证书文件。 CRT文件包含证书加密信息以及申请者的DN和公钥信息。最后,第三方证书颁发机构将CRT文件发送给证书申请者,从而完成证书文件的申请过程。

证书申请者在申请SSL证书之前,需要生成私钥文件和CSR文件。这两个文件可以通过openssl命令生成。操作如下:

[root@iZ23sl33esbZ ~]# openssl req -new -newkey rsa:2048 -sha256 -nodes -out iivey.csr -keyout iivey.key -subj '/C=CN/ST=beijing/L=beijing/O=iivey Inc./OU=网络安全/CN=iivey.com'

上述命令将生成一个CRS文件iivey.csr和一个私钥文件iivey.key。其中,相关字段含义如下:

C 字段:Country,表示单位所在的国家,为两位数国家缩写,如CN 表示中国。 ST 字段:State/Province,单位所在的州或省。 L 字段:Locality ,单位所在市/县。 O字段:组织机构,本网站单位名称OU字段:组织单位,下属部门名称;也常用于显示其他与证书相关的信息,如证书类型、证书产品名称或认证类型或验证内容等。 CN 字段:Common Name,网站的域名。

接下来,将生成的CSR 文件提供给CA 机构。签名成功后,CA机构会向我们发送CRT证书文件。假设该文件是iivey.crt。获取SSL证书文件后,可以将其添加到Nginx配置文件中。 HTTPS 已配置。

4、Nginx下配置SSL证书要启用HTTPS服务,实际上需要在Nginx上打开443监听端口。以下是Nginx下如何配置HTTPS服务。这里只列出server段的配置:

服务器{listen443;server_namewww.iivey.com;indexindex.phpindex.html;root/data/webhtdocs/iivey;sslon;ssl_certificateiivey.crt;ssl_certificate_keyiivey.key;ssl_prefer_server_cipherson;ssl_protocolsTLSv1TLSv1.1TLSv1.2;ssl_ciphersHIGH3 3360!aNULL:MD5;add_headerX- Frame-OptionsDENY;add_headerX-Content-Type-Optionsnosniff;add_headerX-Xss-Protection1;} 简单介绍一下上面各个配置选项的含义:

ssl on:开启SSL功能。 ssl_certificate:用于指定CRT文件的路径,可以是相对路径,也可以是绝对路径。此示例是相对路径。 iivey.crt 文件与nginx.conf 放在同一目录中。 ssl_certificate_key:用于指定秘钥文件的路径,可以是相对路径,也可以是绝对路径。此示例是相对路径。 iivey.key 文件与nginx.conf 放在同一目录中。 ssl_prefer_server_ciphers on:设置协商加密算法时,优先使用我们服务器的密码套件,而不是客户端浏览器的密码套件。 ssl_protocols:该命令用于启动特定的加密协议。这里设置为“TLSv1 TLSv1.1 TLSv1.2”。对于TLSv1.1 和TLSv1.2,请确保openssl 版本大于或等于openssl1.0.1。 SSLv3也可以使用,但是没有它是一个很少被攻击的漏洞,所以现在很少使用。

ssl_ciphers:选择密码套件和加密算法。不同的浏览器可能支持不同的套件和序列。这里选择默认即可。 add_header X-Frame-Options DENY:这是一个增强安全性的选项,这意味着减少点击劫持。 add_header X-Content-Type-Options nosniff:也是一个增强安全性的选项,表示禁止服务器自动解析资源类型。 add_header X-Xss-Protection 1:也是增强安全性的选项,表示防止XSS攻击。5、验证HTTPS功能Nginx的https配置完成后,需要测试配置是否正常。这里提供了两种方法。第一种方法是直接通过浏览器访问https服务。这里使用Firefox浏览器进行测试。如果https配置正常,页面应该直接打开,不会出现如下界面:

如果出现此界面,则说明https尚未配置成功,需要检查https配置是否正确。打开https页面后,可能会出现另一种情况,如下图:

这种现象是https界面可以打开,但是浏览器地址栏左侧的小锁是灰色的,并且有黄色感叹号。这表明本网站的页面可能引用了第三方网站的图片、js、css等资源文件。 https认为页面引用第三方网站资源是不安全的,因此会出现警告信息。解决这个问题非常简单。将页面上引用第三方网站的资源文件全部下载到本地,然后通过本地路径引用。

将所有资源文件修改到本地服务器后,再次通过https访问,浏览器地址栏左侧的小锁自动变成绿色,感叹号消失,如下图:

至此,nginx下配置的https服务已正常运行。

您可以在浏览器中查看证书信息(证书制造商、证书颁发机构、证书有效期等)。点击浏览器地址栏的绿色小锁,选择查看证书即可查看证书详细信息,如下图:

还有另一种方法可以验证SSL 证书的状态,即通过提供的在线网站进行验证。读者可以通过https://myssl.com/网站或https://www.ssllabs.com/ssltest/网站进行在线测试。这些网站可以更详细地测试SSL。证书的状态、安全性、兼容性等方面。

Nginx Web服务器 HTTPS 安全证书配置指南的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、Nginx Web服务器 HTTPS 安全证书配置指南的信息别忘了在本站进行查找哦。

用户评论

醉婉笙歌

我要学习web开发啊!这篇文章刚好对我有用。

    有19位网友表示赞同!

拥抱

最近在用nginx搭建网站,正好需要用到https,来试试这个配置方法

    有15位网友表示赞同!

清原

51CTO的文章还是靠谱的,之前跟着他们的教程学了不少东西。

    有5位网友表示赞同!

可儿

Nginx这么常用的服务器软件,HTTPS的配置技巧确实要注意一下了

    有10位网友表示赞同!

oО清风挽发oО

希望这篇文章能详细讲解各个步骤,最好配上图示更清晰易懂

    有20位网友表示赞同!

折木

配置安全证书是提升网站安全性的关键一步啊!

    有12位网友表示赞同!

全网暗恋者

有的人说Nginx配置比较复杂,这个教程也许可以帮我理解啦。

    有10位网友表示赞同!

风中摇曳着长发

HTTPS能有效保护用户数据传输的安全,一定要重视这个问题!

    有9位网友表示赞同!

秒淘你心窝

学习一下,下次自己申请证书并配置的时候就知道该怎么做啦。

    有15位网友表示赞同!

凝残月

网站安全越来越重要了,这种技术我得学起来!

    有6位网友表示赞同!

烟花巷陌

之前用的是别的服务器软件,现在换到Nginx上,需要了解相关的配置。

    有12位网友表示赞同!

生命一旅程

看标题感觉详细讲解了HTTPS的配置步骤,这个方法我想要学习一下。

    有16位网友表示赞同!

陌上花

做站长需要注意很多细节,安全证书就是其中之一啊!

    有13位网友表示赞同!

眉黛如画

网站速度和安全性都是重要因素,这篇文章可能能提供一些优化思路。

    有5位网友表示赞同!

苏莫晨

感觉这篇文章很有深度,可以帮助我提升网站的安全水平。

    有18位网友表示赞同!

鹿叹

51CTO的文章经常分享很多IT方面的知识,值得关注起来!

    有9位网友表示赞同!

我就是这样一个人

配置HTTPS可以提高网站的信誉度,这对SEO也是有帮助的

    有17位网友表示赞同!

强辩

学习一下如何在Nginx环境下实现安全证书https的配置!

    有9位网友表示赞同!

孤独症

最近一直在研究网站安全策略,这篇文章应该能给我一些启发。

    有8位网友表示赞同!

白恍

看标题感觉很有吸引力,我要去阅读一下看看究竟是如何配置HTTPS的!

    有13位网友表示赞同!

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/6829.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666