言简意赅的讲解NGINX,HTTPS和DNS解决的痛点
配置域名解析和 HTTPS 不仅能够提升网站的安全性,还能增加用户信任,优化 SEO 排名,并提高网站性能。随着互联网安全标准的提高,HTTPS 已经成为网站必不可少的配置。无论是为了保护用户数据,还是提升网站的可见性,配置 HTTPS 和正确的域名解析都是每个站长必须了解的关键步骤。
如何让自己的域名支持 HTTPS:从购买域名到配置 Nginx
在之前的文章中,我介绍了如何使用 Nginx 来实现 HTTPS 配置。很多同学在学习完后也开始好奇,如何才能让自己的网站拥有一个域名,并且如何将这个域名配置为 HTTPS 域名。今天,我就来分享一下我的解决方案,希望能够帮助大家更好地理解整个过程。
背景:
我使用的是阿里云购买的域名,并通过 Docker 部署了 Nginx 服务,同时配置了多个域名指向同一个服务器。在这篇文章中,我会详细讲解如何购买和配置域名,如何实现 HTTPS,以及如何在 Nginx 配置文件中处理多个域名指向同一台服务器。
步骤 1:在阿里云购买域名
首先,我们需要在阿里云购买一个域名。这是让你的站点拥有独立地址的第一步。
-
登录阿里云账号,进入 阿里云官网。
-
在搜索框中输入你想要的域名(比如 “wenhaono1.com”),检查是否可以购买。
-
选择一个合适的域名,完成支付。一般来说,域名的费用会根据后缀(.com、.cn 等)和流行程度有所不同。
步骤 2:支付成功并查看域名列表
支付完成后,域名会显示在阿里云的“域名管理”列表中。你可以在这里看到你已经购买的域名,并开始进行后续操作。
步骤 3:提交注册局审核
域名购买成功后,你需要提交注册局审核。这一步是为了确保域名的合法性。通常情况下,这个过程会很快完成,但有时也可能需要等待一些时间。
步骤 4:添加云解析 DNS 记录值
域名注册成功后,接下来就是配置 DNS 解析了。在阿里云控制台中,你可以设置 DNS 解析记录,将域名指向你自己的服务器 IP 地址。
-
登录阿里云控制台,进入 域名与网站 -> 云解析 DNS。
-
在 DNS 管理页面中,选择 添加记录。
-
添加 A 记录,将你的域名解析到你服务器的公网 IP 地址。
- 主机记录:
@
或者www
(取决于你是否需要将 www 域名也解析到该服务器) - 记录类型:A 记录
- 记录值:服务器的公网 IP 地址
- 主机记录:
步骤 5:测试域名解析是否成功
配置好 DNS 记录后,等待 DNS 更新生效(通常几分钟到几个小时),然后在浏览器中输入你的域名,查看是否能正确访问你的服务器。如果能正常访问但显示“网站不安全”提示,说明你的站点仍然是通过 HTTP 访问的,接下来需要配置 HTTPS。
步骤 6:为域名配置 HTTPS(Nginx 配置)
此时,域名解析已经生效,但你的网站还没有配置 HTTPS,导致浏览器会提示“不安全”。要解决这个问题,你需要为你的站点配置 HTTPS。
-
申请 SSL 证书
在阿里云上,你可以通过 SSL 证书 服务申请免费的证书。选择合适的证书类型,并按照提示完成申请和绑定。
-
安装 SSL 证书
通过 SSH 登录到你的服务器,下载并安装 SSL 证书。将证书文件和私钥上传到服务器。
-
修改 Nginx 配置文件
在 Nginx 配置文件中启用 HTTPS,之前有过讲解 Nginx 。你可以参考以下配置示例:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
# 将 HTTP 请求重定向到 HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/nginx/ssl/yourdomain.crt;
ssl_certificate_key /etc/nginx/ssl/yourdomain.key;
# SSL 配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
location / {
root /var/www/html;
index index.html index.htm;
}
}
说明:
- 第一个
server
配置是将所有的 HTTP 请求(端口 80)重定向到 HTTPS(端口 443)。 - 第二个
server
配置则启用了 HTTPS,并设置了证书路径、私钥路径以及一些 SSL 配置。 - 如果你有多个域名指向同一台服务器,你只需要复制第二个
server
配置并修改server_name
,然后为每个域名绑定不同的证书即可。
- 重启 Nginx
配置完成后,重启 Nginx 使配置生效:
nginx -s reload
步骤 7:验证 HTTPS 是否成功
完成上述配置后,返回浏览器,重新加载你的站点。此时,你应该能够看到网址栏中的 HTTPS 和锁标志,表明你的站点已经成功启用了 SSL。
步骤 8:提交备案
在中国大陆,网站必须进行ICP备案才能正常使用,因此购买域名后,你还需要进行备案。
- 购买域名并完成支付后,你会看到提示信息,告诉你该域名还没有备案,无法访问。
- 点击页面上的【进入备案管理平台】链接,进入阿里云的备案系统。
- 在备案管理平台中,填写相关信息,包括网站的基本信息(如网站名称、备案类型等)和接入商(即阿里云)提供的备案信息。
- 提交备案申请并等待审核。通常情况下,备案审核时间为 7-20 个工作日。
步骤 9:按照管局要求进行修改并完成审核
在备案提交后,管局会进行审核。如果审核过程中发现你提交的资料不齐全或信息有误,管局会要求你进行修改。常见的修改要求包括:
- 网站备案主体(如个人或企业)信息与实际情况不符。
- 网站的服务内容描述不准确。
- 上传的图片或证明文件不符合要求。
在修改完成后,重新提交并等待管局的再次审核。一旦通过备案审核,你的域名就可以正常使用了,并且可以配置 DNS 解析。
步骤 10:配置多个域名指向同一服务器
如果你有多个域名需要指向同一台服务器并启用 HTTPS,可以在 Nginx 配置中使用多个 server
块。每个 server
块对应一个域名,可以为每个域名指定不同的 SSL 证书。
例如,如果你有 example1.com
和 example2.com
两个域名,你的 Nginx 配置可能如下所示:
server {
listen 443 ssl;
server_name example1.com www.example1.com;
ssl_certificate /etc/nginx/ssl/example1.crt;
ssl_certificate_key /etc/nginx/ssl/example1.key;
location / {
root /var/www/example1;
index index.html index.htm;
}
}
server {
listen 443 ssl;
server_name example2.com www.example2.com;
ssl_certificate /etc/nginx/ssl/example2.crt;
ssl_certificate_key /etc/nginx/ssl/example2.key;
location / {
root /var/www/example2;
index index.html index.htm;
}
}
这样,你就可以在同一台服务器上托管多个网站,每个网站使用不同的域名和 SSL 证书。
总结
通过本文的介绍,大家应该能够理解如何从购买域名到配置 Nginx,使得你的域名能够启用 HTTPS。整个流程包括:
- 在阿里云购买并配置域名。
- 使用云解析将域名指向服务器。
- 申请并安装 SSL 证书。
- 修改 Nginx 配置文件启用 HTTPS。
- 配置多个域名指向同一服务器。
通过以上步骤,你就可以成功让自己的网站支持 HTTPS,提升网站的安全性和用户信任度。
通过上述内容,你就已经基本理解了这个方法,基础用法我也都有展示。如果你能融会贯通,我相信你会很强
Best
Wenhao (楠博万)