Nginx 配置 SSL(HTTPS)

记录如何给网站配置 HTTPS

获取免费的 SSL 证书

这个我是从阿里的数字证书管理服务申请的一年免费 SSL 证书。一年可以免费申请 20 张免费证书。

申请好之后,还是在这个页面点击「创建 20 / 20」按钮,创建一个证书,并点击操作栏的「申请证书」正式申请你的证书。

在申请页面中,输入以下几个必填信息(以实际页面为主):

  • 证书绑定域名
  • 域名验证方式
  • 联系人
  • 所在地
  • 密钥算法
  • CSR 生成方式

然后点击下一步,在对应的阿里云DNS控制台添加已生成的 DNS 解析记录。这个一般人家都会帮你生成好,等5分钟左右,回到证书申请页面,点击「验证」即可。

等待验证通过之后,点击「提交审核」即可。

完成上述步骤之后,我们点击证书列表操作栏中的「部署」按钮,跳到「证书部署」页面:

  • 选择资源列表-云服务器 ECS
  • 在自己的 ECS 服务器上进行部署(点击「部署」按钮)
  • 自定义证书路径和私钥路径
  • 点击确定之后,就会在你的 ECS 上生成对应的证书及其私钥

如果不知道如何配置,可以点击右上角的「帮助文档」,傻瓜式粘贴复制。

如果在确认之后,一直迟迟没有好,那可能出现了 BUG,我查看了接口之后发现接口报错了,然后登到服务器之后又发现,证书已经OK了。

接下来我们就是需要去配置 Nginx 了。

在配置之前我们需要知道以下几点:

  1. 确保 Nginx 是已经安装过 https 的模块(这个不安装,在配置了 ssl 后重新 reload 也会提示)
  2. 确保 ssl 部分的配置正确
  3. 可以使用 nginx -t 测试

如果我们当安装 nginx 之初没有安装 ssl 模块,那么需要进到 nginx 的安装包内进行安装:

shell 复制代码
 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

为什么要进入到安装包,是因为 configure 就在安装包内,当然也可以根据路径来安装,都可以的

安装好之后,需要再编译一次:

shell 复制代码
make

然后这里我们最好是备份已有的 nginx.conf 文件,防止后续操作时被覆盖掉。

shell 复制代码
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

再然后,复制刚编译生成的配置覆盖原有的配置:

shell 复制代码
cp ./objs/nginx /usr/local/nginx/sbin/

我们再回到 nginx.conf 中添加 ssl 部分的配置:

conf 复制代码
server {
    listen       443 ssl;
    server_name  xxxx;
    ssl_certificate       cert/wenabc.pem;
    ssl_certificate_key   cert/wenabc.key;
	ssl_session_timeout 5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    location / {
        root /home/;
    	index  index.html index.htm;
    }
}

最后执行:

shell 复制代码
ngixn -s reload

大功告成。

踩坑

首先就是没有安装 ssl 模块,导致卡了半天,安装好之后就比较顺利。

第二就是在替换 nginx 二进制文件时,提示原来的程序正在执行,那这个就是需要先 stop 掉当前的 nginx,在替换之后,重新执行一下 ./nginx 即可。

相关推荐
qq_264220896 小时前
Nginx优化与 SSL/TLS配置
运维·nginx
matlab的学徒9 小时前
Web与Nginx网站服务(改)
linux·运维·前端·nginx·tomcat
邂逅星河浪漫13 小时前
【Docker+Nginx+Ollama】前后端分离式项目部署(传统打包方式)
java·nginx·docker·部署
IT成长日记17 小时前
【Nginx开荒攻略】Nginx主配置文件结构与核心模块详解:从0到1掌握nginx.conf:
linux·运维·nginx·配置文件
ZzzZZzzzZZZzzzz…20 小时前
Nginx_Tomcat综合案例
运维·nginx·tomcat·负载均衡·rhce·反向代理·https加密服务
VueVirtuoso1 天前
SaaS 建站从 0 到 1 教程:Vue 动态域名 + 后端子域名管理 + Nginx 配置
前端·vue.js·nginx
007php0072 天前
Redis高级面试题解析:深入理解Redis的工作原理与优化策略
java·开发语言·redis·nginx·缓存·面试·职场和发展
Xxtaoaooo2 天前
Nginx 502 网关错误:upstream 超时配置的踩坑与优化
运维·nginx·负载均衡·502错误·upstream超时
爱琴孩2 天前
企业级VIP+Nginx的网络访问方案
nginx·keepalive·vip
看好多桂花树2 天前
Nginx 优化
运维·nginx