云计算百科
云计算领域专业知识百科平台

(DNS域名解析到服务器IP)从 IP地址 访问到 HTTPS:域名 访问详解

        在平常的开发过程中,我们经常需要部署项目。开发环境、测试环境等,主要是通过 IP 地址和端口访问,但是在生产环境中,主要是开启 SSL 使用 https 方式访问,https 是在 http 协议的基础上加了 SSL/TSL 协议,https 数据是加密传输的、安全性高。适用于敏感数据及对数据安全性要求高的场景。今天我们来总结下项目通过 https:域名 访问的主要步骤(

     一:购买域名

        如果没有域名。用户访问不方便,访问地址难以记忆,一般不对公网 IP 签发证书,无法实现开启 SSL,访问不安全。用户访问服务的时候只能通过IP地址和端口访问,在 nginx.conf 中,如果没有指定 server_name 或者 listen 指令绑定到特定的 IP 地址,Nginx 会默认监听 localhost。如果需要实现局域网内其他设备访问,将 listen 指令绑定到服务器的 IP 地址。

        购买域名一般可以在阿里云(万网)、腾讯云、华为云、百度云等平台。可以搜索想要的域名、域名类型等然后根据引导流程进行购买,博主在阿里云购买了域名。

        购买域名用户访问更加的方便,便于用户记忆。可以申请 SSL 证书和域名配合使用,对数据加密,确保数据安全。一般对公网 IP 不会签发证书,公网 IP 可能会被动态分配或者重新使用,增加了证书管理和身份验证的复杂度。

     二:ICP 备案

        是否需要进行备案可以查看相关的资料,主要是看网站或者 App 解析服务器的位置。如果备案是个人使用,填写个人相关信息、上传资料、流程相对简单,按要求填写完成提交即可,审核期间可能会有电话确认、短信验证等,注意接听电话或者查看短信。备案一般大概需要几个工作日时间不等,耐心等待即可。

     三:获取证书

      1:证书颁发机构

        商业版CA:提供多种类型的证书,审核更加的严格。证书从如 CFCA、DigiCert、GlobalSign、vTrus、DigiCert Pro 等网站获取,提供付费的证书,适用于企业官网、电子商城等,主要适用于企业或者对安全性要求高的项目。证书的有效期一般比较长,可以根据自己的需求选择。

        免费版CA:主要提供基础的 DV 证书,主要验证域名所有权,审核相对简单,如从 Let's Encrypt、JoySSL1、阿里云等地方申请免费的证书,免费的证书一般有效期为三个月、一年等等。主要可以用于测试或者个人网站。免费版 CA 证书有效期通常比较短,一般为三个月或者稍微更长一点,需要频繁的更换证书。

      2:证书类型

        组织验证(OV):支持特殊域名的签发,验证域名、组织信息,可以为公网 IP 签发证书,但是一般不建议使用公网 IP 签发证书,因为存在安全风险、IP地址因为某些原因变动等。该类型证书企业首选,需付费。         域名验证(DV):验证域名所有权,无法为特殊后缀(如org、.gov)的域名或者公网 IP 签发证书,适合个人测试使用,价格相对较低。         扩展验证(EV):最高级别的密码安全等级验证,确保网站数据传输安全,适合大型企业,费用高。

      3:获取证书

        博主使用证书主要是个人部署学习使用,所以此处可以申请个人免费证书或者购买个人证书。博主申请证书的相关操作是在阿里云。个人免费证书现在有效期只有三个月,如果有效期太短不太符合个人使用需求,那么可以购买个人测试证书,有效期长,价格相对便宜。如果是正式项目使用,建议购买付费的证书。免费的证书是 DV 域名验证类型证书。可以在对应域名控制台找到数字证书管理服务中找到 SSL 证书管理,可以进行证书的购买及证书管理。

       (1):创建证书

        主要是选择证书类型、输入域名,然后填写证书数量点击提交即可。

        

       (2):证书申请

        证书创建完成后进行证书申请,证书申请绑定域名、域名验证方式、秘钥算法、选择联系人、CSR生成方式等,选择完成后点击提交,待证书审核签发,一般在几分钟内会进行证书签发,页面如下:

       (3):证书下载

        证书签发完成后,可以根据服务器类型选择证书下载,页面如下:

     四:通过域名访问配置

     1:什么是DNS解析?

        DNS(Domain Name System Resolution)解析是将域名转换为计算机可以识别的 IP 地址的过程,DNS 解析是互联网运行的基础,用户无需记 IP 地址,只需要通过域名访问网站即可。

        DNS 解析的作用:

        (1):将域名转换为 IP 地址,用户通过域名访问即可。

        (2):DNS 缓存可以减少重复解析的时间。

        (3):DNS 可以将一个域名解析到多个 IP 地址,实现负载均衡。

        DNS 记录类型:

        A 记录:将域名解析到 IPV4 地址

        AAAA 记录:将域名即系到 IPV6 地址

        CHAME 记录:将域名解析到另一个域名(别名)

        MX 记录:指定邮件服务器的地址

        等等类型记录。

      2:配置DNS解析记录

        配置 DNS 解析,登录域名注册商,找到域名控制台管理,然后添加域名解析记录,主要是配置服务器的公网 IP,如果不知道当前服务器的公网 IP,可以用 curl ifconfig.me ,命令进行查看。如下图为阿里云服务添加域名解析配置:

        添加 DNS 解析记录时,记录类型一般选择 A,A 含义为指向一个IPv4的地址,主机记录主要是添加域名的前缀,如 www,或者 @,或者 ab即二级域名,或者 ab.cd 多级域名,记录值就是填写对应服务器的地址。TTL 一般默认值即可,TTL 全称是 Time to Live,表示 DNS 记录的缓存存活时间。表示在这个时间段内,解析器会直接直接缓存的结果,而不是去查询 DNS 服务器。新建解析记录时,可以先将 TTL 时间设置为一分钟左右,先让记录快速生效。生效后可以将 TTL 时间改为一个较大的合适值。DNS 解析记录如下所示:

        配置完 DNS 解析后,通常需要等几分钟或者几小时配置才能生效,具体取决于 TTL 时间设置和 DNS 缓存。可以使用 ping 域名 进行测试,如 ping xxxxxx.com,如果返回的 IP 是你服务器的 IP 地址,则说明 DNS 配置完成。在服务器中进行域名 DNS 解析测试,如下图:

        

        当看到如图所示信息时,表示能进行数据交互,网络良好,即表明 DNS 配置成功。

      3:服务器防火墙设置

        根据服务器的内核版本,使用对应的命令查看防火墙的端口设置及添加端口,查看服务器内核版本的命令:cat /etc/os-release,如果内核是 Centos 相关版本,防火墙设置相关命令如下:

        (1):查看防火墙开的端口:firewall-cmd –zone=public –list-ports

        (2):若端口未开,则添加,比如开放 8008 端口:firewall-cmd –zone=public –add-port=8008/tcp –permanent    

        firewall-cmd –permanent –add-service=http  http 是开放 80 端口         firewall-cmd –permanent –add-service=https https 是开放 443 端口

        (3):修改完成后,重启防火墙:firewall-cmd –reload

      4:nginx.conf 配置

user nginx;
worker_processes auto;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

server {
listen 80;
# 替换为你的域名
server_name xxxxxx.com;

charset utf-8;

location / {
proxy_pass http://127.0.0.1:9016;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}

      5:通过 http:域名 进行访问

        通过域名访问,http:域名,页面如下:

        

        可以看到浏览器提示不安全,因为没有 SSL/TSL 证书,导致是明文传输,访问不安全,不建议输入个人隐私、敏感信息。https 通过 SSL/TLS 协议对数据进行加密,确保传输过程中数据的安全性。验证服务的真实性,通过加密防止数据被篡改,保证数据的安全性。

     五:配置 SSL 证书

      1:上传 SSL 证书

        .pem 文件:是 Base64 编码的文件,通常包含服务器的公钥、域名信息、颁发机构等。主要用于身份验证和加密通信。当访问 https 网站时,浏览器会验证服务器提供的 .pem 证书的有效性,保证访问安全。证书中包含了公钥,用于进行数据加密。

        .key 文件:存储的是私钥,与证书配对的私钥,用于解密使用公钥加密的数据。私钥是重要信息,妥善保管。主要用户数据解密和数字签名。使用私钥解密客户端发送的加密数据,使用私钥进行数据前面,客户端用公钥验证签名是否正确,防止被篡改,保证数据安全。

        公钥和私钥配合使用,客户端通过证书验证服务器的身份,使用公钥与服务器进行秘钥交换和数据加密,服务器用私钥进行解密和加密。

         

      2:证书目录挂载

        在 docker-compose.yml 中设置 nginx 服务证书目录挂载,如下:

# 证书映射
– /docker/nginx/ssl:/etc/nginx/certs

      3:配置 SSL 证书

        主要配置是监听 443 端口,端口后面配置 ssl,如:listen 443 ssl,然后将有效证书的公钥和私钥目录进行映射。此处注意:如果使用了 docker,那么证书的目录就是容器中的路径,具体路径就是证书挂载目录对应的容器中的目录。

        nginx.conf 配置文件如下:

user nginx;
worker_processes auto;

error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

autoindex on;

keepalive_timeout 65;

server {
# 监听443 端口,443 端口为https默认端口,http默认端口为80,ssl 为开启 SSL 加密
listen 443 ssl;
# 此处替换为你的域名
server_name xxxxxx.com;

# SSL 证书,此处的地址为容器中的目录地址
ssl_certificate /etc/nginx/certs/xxxxxx.pem;
ssl_certificate_key /etc/nginx/certs/xxxxxx.key;

# 启用 SSL 优化
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

charset utf-8;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
}

      4:通过 https:域名 访问

        通过 https:域名 进行访问,测试页面如下:

        

     六:总结

        以上为通过 https:域名 访问项目的完整步骤。首先购买域名,购买完成后需要进行备案,备案审核需要一段时间,耐心等待即可。备案完成后在服务器控制台添加 DNS 解析记录,主要作用就是根据域名访问时解析到对应服务器 IP 地址,可以使用 ping 域名 命令进行测试配置是否成功,然后在 nginx.conf 中将 server_name 由 localhost 替换为对应的域名。这个时候可通过域名进行访问,但是浏览器会提示不安全。可以根据自己实际业务场景看是否需要开启 SSL,如果是开发环境或者个人学习使用,不开启 SSL 也可以,但是如果是生产环境一般都建议开启 SSL。获取证书,如果是个人使用,建议使用免费的或者收费的价格相对便宜的即可。创建证书、申请证书、证书一般十几分钟内会进行签发。根据服务器的类型(如 nginx、tomcat)下载对应类型的证书。证书一般包含 .pem 文件和 .key 文件,即证书和私钥。nginx.conf 中监听 443 端口,后面写 ssl,即开启 SSL。ssl_certificate 对应 证书文件(即 .pem 文件),ssl_certificate_key对应私钥文件(即 .key 文件)。配置完成后,重新加载 nginx 配置文件,启动 nginx 容器,然后根据 https:域名 即可。

赞(0)
未经允许不得转载:网硕互联帮助中心 » (DNS域名解析到服务器IP)从 IP地址 访问到 HTTPS:域名 访问详解
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!