NGINX配置SSL证书+搭建HTTPS网站教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了NGINX配置SSL证书+搭建HTTPS网站教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含8780字,纯文字阅读大概需要13分钟。
内容图文
![NGINX配置SSL证书+搭建HTTPS网站教程](/upload/InfoBanner/zyjiaocheng/155/80efabff370b48f1be74d865f8af56cd.jpg)
根据维基百科的解释:
HTTPS 目前已经是所有注重隐私和安全的网站的首选,随着技术的不断发展,HTTPS 网站已不再是大型网站的专利,所有普通的个人站长和博客均可以自己动手搭建一个安全的加密的网站。
如果一个网站没有加密,那么你的所有帐号密码都是明文传输。可想而知,如果涉及到隐私和金融问题,不加密的传输是多么可怕的一件事。
鉴于本博客的读者都是接近专业人士,我们不再多费口舌,直接进入正题吧。
二、使用 OpenSSL 生成 SSL Key 和 CSR
由于只有浏览器或者系统信赖的 CA 才可以让所有的访问者通畅的访问你的加密网站,而不是出现证书错误的提示。所以我们跳过自签证书的步骤,直接开始签署第三方可信任的 SSL 证书吧。
OpenSSL 在 Linux、OS X 等常规的系统下默认都安装了,因为一些安全问题,一般现在的第三方 SSL 证书签发机构都要求起码 2048 位的 RSA 加密的私钥。
同时,普通的 SSL 证书认证分两种形式,一种是 DV(Domain Validated),还有一种是 OV (Organization Validated),前者只需要验证域名,后者需要验证你的组织或公司,在安全性方面,肯定是后者要好。
无论你用 DV 还是 OV 生成私钥,都需要填写一些基本信息,这里我们假设如下:
域名,也称为 Common Name,因为特殊的证书不一定是域名:<codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">example.com
组织或公司名字(Organization):<codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">Example, Inc.
部门(Department):可以不填写,这里我们写 <codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">Web Security
城市(City):<codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">Beijing
省份(State / Province):<codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">Beijing
国家(Country):<codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">CN
加密强度:2048 位,如果你的机器性能强劲,也可以选择 4096 位
按照以上信息,使用 OpenSSL 生成 key 和 csr 的命令如下
PS:如果是泛域名证书,则应该填写 <codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">*.example.com
你可以在系统的任何地方运行这个命令,会自动在当前目录生成 <codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">example_com.csr 和 <codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">example_com.key这两个文件
接下来你可以查看一下 <codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">example_com.csr,得到类似这么一长串的文字
这个 CSR 文件就是你需要提交给 SSL 认证机构的,当你的域名或组织通过验证后,认证机构就会颁发给你一个 <codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">example_com.crt
而 <codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">example_com.key 是需要用在 Nginx 配置里和 <codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">example_com.crt 配合使用的,需要好好保管,千万别泄露给任何第三方。
三、Nginx 配置 HTTPS 网站以及增加安全的配置
前面已经提到,你需要提交 CSR 文件给第三方 SSL 认证机构,通过认证后,他们会颁发给你一个 CRT 文件,我们命名为 <codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">example_com.crt
同时,为了统一,你可以把这三个文件都移动到 <codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">/etc/ssl/private/ 目录。
然后可以修改 Nginx 配置文件
检测配置文件没问题后重新读取 Nginx 即可
<codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">nginx -t && nginx -s reload
但是这么做并不安全,默认是 SHA-1 形式,而现在主流的方案应该都避免 SHA-1,为了确保更强的安全性,我们可以采取迪菲-赫尔曼密钥交换
首先,进入 <codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">/etc/ssl/certs 目录并生成一个 <codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">dhparam.pem
生成完毕后,在 Nginx 的 SSL 配置后面加入
同时,如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用 HTTPS 访问
同时也可以单独开一个 Nginx 配置,把 HTTP 的访问请求都用 301 跳转到 HTTPS
四、可靠的第三方 SSL 签发机构
众所周知,前段时间某 NIC 机构爆出过针对 Google 域名的证书签发的丑闻,所以可见选择一家靠谱的第三方 SSL 签发机构是多么的重要。
目前一般市面上针对中小站长和企业的 SSL 证书颁发机构有:
StartSSL
Comodo / 子品牌 Positive SSL
GlobalSign / 子品牌 AlphaSSL
GeoTrust / 子品牌 RapidSSL
其中 Postivie SSL、AlphaSSL、RapidSSL 等都是子品牌,一般都是三级四级证书,所以你会需要增加 CA 证书链到你的 CRT 文件里。
以 Comodo Positive SSL 为例,需要串联 CA 证书,假设你的域名是 <codeCourier New',monospace; font-size:14.3999996185303px; padding:2px 4px; color:rgb(199,37,78); background-color:rgb(249,242,244)">example.com
那么,串联的命令是
在 Nginx 配置里使用 example_com.signed.crt 即可
如果是一般常见的 AplhaSSL 泛域名证书,他们是不会发给你 CA 证书链的,那么在你的 CRT 文件后面需要加入 AlphaSSL 的 CA 证书链
AlphaSSL Intermediate CA
五、针对企业的 EV SSL
EV SSL,是 Extended Validation 的简称,更注重于对企业网站的安全保护以及严格的认证。
最明显的区别就是,通常 EV SSL 显示都是绿色的条,比如本站的 SSL 证书就是 EV SSL。
如果贵公司想获取专业的 EV SSL,可以随时联系我们 info at cat dot net
六、本文参考文献
Apache + WordPress + SSL 完全指南
OpenSSL CSR Creation
NGINX - PhoenixWiki
转自:https://s.how/nginx-ssl/
以上就介绍了NGINX 配置 SSL 证书 + 搭建 HTTPS 网站教程,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
内容总结
以上是互联网集市为您收集整理的NGINX配置SSL证书+搭建HTTPS网站教程全部内容,希望文章能够帮你解决NGINX配置SSL证书+搭建HTTPS网站教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。