域名,又被成为网域,任何人都可以通过服务商注册域名、购买附加套餐,以及更改DNS和添加域名解析等服务。域名是由一串用点分隔的字母串组成的名称,用来对数据传输时要访问的计算机或计算机组进行定位标识(有时也指地理位置)。
顶级域名:域名的最后一段,或紧跟在“.”符号后面的部分。顶级域名主要分为两类:以机构性质命名的域和以国家地区代码命名的域。而域名与数字地址分配机构是协调互联网域名和ip地址的实体。
域名系统:全称为网域名称系统,英文缩写为DNS。它是因特网的一项核心服务,是一个进行域名和与之相对应的ip地址转换的系统,可以将域名和ip地址相互映射为一个分布式数据库。在互联网发展早期,大家是通过ip地址访问互联网资源,但是不方便记忆,于是域名管理系统应运而生。域名管理系统通过将域名和IP地址进行绑定,使大家访问域名就可以访问它所绑定的IP地址上面的网络资源,非常方便。域名的发明极大促进了网站的发展,带动了互联网信息的传播。
域名服务器:运行提供ip地址和域名之间转换服务的域名系统的计算机网络设备,能够使人们更方便的访问互联网,而不用去记住能够被机器直接读取的ip地址数串。DNS基于全球范围的13个“根服务器”,其中10个都位于美国,从这13个根服务器开始,余下的Internet DNS命名空间被委托给其他的DNS服务器,这些服务器提供DNS名称空间中的特定部分。
URL:统一资源定位符,是域名的主要表现形式。
域名注册商:一个商业实体或组织,它们由互联网名称与数字地址分配机构或者一个国家性的国家代码顶级域名域名注册局委派,以在指定的域名注册数据库中管理互联网域名,向公众提供此类服务,并负责提供DNS解析、域名变更过户、域名续费等操作。
域名证书对于确立域名的归属有决定性的作用。而且这些网站域名证书一般是电子形式的,能够确定域名的时间和拥有权,是受法律认可的证书文件。当涉及到域名过户、域名交易和网站备案等事项时,域名证书便会对其中的许多操作起到关键作用,而且域名证书内容记载清楚准确,可以避免发生域名归属的纠纷。
而所谓网站域名证书是针对域名注册的拥有者而言的,它是以电子证书的格式来表现的,标明了注册域名、域名所有人的中文和英文名称、域名注册时间和到期时间等这些内容,目前域名证书都是电子文书的形式,确定了域名注册者对域名拥有权以及拥有期限,对确立域名的归属权有证明作用,也是受法律认可的证书文件,所以在特定的情况下,网站域名证书还是比较重要的。
目前Google、百度等主流搜索引擎表示会优先收录以HTTPS开头的网站,并赋予网站高权重,有效提高网站关键词的排名。安装高级的SSL证书不仅会出现绿色小锁及“https”,还会显示出企业名称,这会大大增加用户的信任,同时提升形象和可信度。
对网站传输的数据进行加密,包括网站用户的账户密码、身份证等隐私信息,防止被黑客监听、窃取和篡改。
如果没有安装证书,用户通过谷歌、火狐等浏览器访问企业网站时会提示不安全,而安装由受信任的证书颁发机构签发的证书,会成为谷歌、火狐等主流浏览器受信任站点。
普通的http网站非常容易遭受网络攻击,尤其是流量劫持,会强制用户访客其他网站,从而造成网站流量损失。而安装受信任的证书,你的网站就能有效避免流量劫持。
Freenom是全球最大,最知名的免费域名注册网站:Freenom
包含的免费域名后缀:.tk,.ml,.cf,.ga,.gq(最近在维护服务器,无法新注册域名。。。)
知名的国外付费域名购买网站:NameSilo,Namecheap。
国内:阿里,腾讯等,国内建站的选择,一般需要备案,也能一并申请证书。
方案一:在购买域名的网站中,使用domain manage把域名解析到你要服务器对应的ip地址,生效时间根据网站托管的服务器和设置的ttl时间而定,一般在24小时以内。流量,带宽限制等同于云服务器限制。
方案二:托管给指定cdn服务供应商,可以使得域名得到更快的解析,并提供cdn托管服务,防止网站被打爆。托管的方式是更改域名注册商的name server为cdn供应商提供的指定name server。知名的服务商有:Cloudflare(个人使用基本免费,没有流量限制,容易被墙),AWS Cloudfront和GCP Gcore(著名云服务器供应商的cdn服务,每月有免费流量限制(1TB左右),超额付费),阿里&腾讯(爱国云服务器供应商的cdn服务,每月有少量免费流量可以使用,超额付费)。
在这一步执行前,你需要确保解析域名已经生效,并且云服务器的80,443端口已经开放,否则无法成功申请证书。
为域名申请一个真实的TLS证书,使网站具备标准TLS加密的能力及HTTPS访问的能力。
bash#运行安装脚本
wget -O - https://get.acme.sh | sh
#让acme.sh命令生效
. .bashrc
#开启acme.sh的自动升级
acme.sh --upgrade --auto-upgrade
bash#切换CA机构:
acme.sh --set-default-ca --server letsencrypt
#申请证书:
acme.sh --issue -d 域名 -k ec-256 --webroot /var/www/html
bashacme.sh --installcert -d 域名 --cert-file 安装位置/cert.crt --key-file 安装位置/cert.key --fullchain-file 安装位置/fullchain.crt --ecc
json//nginx配置示例
// 配置证书
server {
server_name 域名;
// 服务运行端口
location / {
proxy_pass http://127.0.0.1:8008;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
}
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate 安装位置/cert.crt; // 步骤3证书安装位置
ssl_certificate_key 安装位置/cert.key; // 步骤3私钥安装位置
}
// http访问自动转https,并拒绝http访问
server {
if ($host = 域名) {
return 301 https://$host$request_uri;
}
listen 80;
listen [::]:80;
server_name 域名;
return 404;
}
Certbot是一个易于使用的客户端,它由EFF,Mozilla和开源组织发起。可以从Let's Encrypt获取证书,一个开放的证书颁发机构,并将其部署到Web服务器。
一般而言,Ubuntu系统已经安装了snap,可以确认是否已经安装。
bashsudo apt update && sudo apt install snap
#查看snap版本
snap version
bash#更新snap的core
sudo snap install core
sudo snap refresh core
#安装CertBot
sudo snap install --classic certbot
#将certbot加入环境变量
sudo ln -s /snap/bin/certbot /usr/bin/certbot
bash#使用nginx
sudo certbot --nginx -d 域名
#使用apache
sudo certbot --apache -d 域名
首次运行CertBot获取证书,它将会询问你的电子邮件,输入一个你常用的邮件地址,它会在到期之前通知你。同意CertBot协议,同意将HTTP重定向到HTTPS。
Let's Encrypt的SSL证书会在3个月到期即90天,Certbot软件包附带了一个cron任务和systemd计时器,它将在证书过期之前进行自动续订。除非更改配置,否则无需再次手动运行Certbot。可以通过运行命令sudo certbot renew --dry-run来测试证书的自动续订。
使用sudo certbot delete可以删除指定域名证书的安装。
域名及证书申请