# 个人性质域名申请以及https配置

环境:1.阿里云服务器ECS,nginx服务器

2.你所购买的域名 www.example.com

# 域名备案以及解析

域名备案可以使用https://beian.aliyun.com/,或者你所在购买的域名提供商代备案系统。

注意:未备案之前域名都无法接入。

备案需要经过阿里云代备案系统的人工审核,以及工信部https://beian.miit.gov.cn/的短信验证码审核,以及http://www.beian.gov.cn/的审核(你可能需要到填写所在地的网管大队进行责任书签名),才能拥有一个合法的非经营性个人网站。

# 域名解析

登录阿里云域名控制台,点需要解析的域名,进入解析设置页面,添加记录。

注意:这里可产生带www和不带www的两种方式,若配置主机记录为www,则解析www.example.com的网站,但不能通过example.com进行访问。需要再配置主机纪录为@的解析规则才能不带www进行访问,注意记录值需要填写你的云服务器公网ip地址。解析线路如果你不知道如何设置,最好设置为默认(笔者在这里挖过一个坑,用的网络是电信的,解析路线走了移动的,就如何也找不到域名所对应的IP,起初以为是nginx的问题,最终才知道是域名的解析问题)

申请好域名后,先配置好基础nginx的80端口以供访问(新安装的nginx可以直接访问),该配置文件命名为example.com 放置nginx默认配置路径(非手动编译安装的为/etc/nginx/sites-enabled/下)

server {
    listen 80;
    server_name www.example.com example.com; # // 你的域名
    # rewrite ^(.*)$ https://${server_name}$1 permanent; #// 把http的域名请求转成https
    location / {
        root /var/www/html; # //你的静态文件路径
        index index.html index.htm;
   }
}
1
2
3
4
5
6
7
8
9

确保example.com与www.example.com都可以访问页面。

此时你应该能成功访问nginx成功安装的页面或者你配置的页面,但是左上角的浏览器会认为该网站不安全,因为此时采用的是http明文传输协议。不安全的原因可以自行抓包看传输内容。

HTTPS的配置

如果是阿里云的域名,可以在控制台中找到ssl应用安全,阿里云提供免费的单域名证书,由digicert签发,如果采用了别家公司的可以看提供商是否提供免费的ssl应用安全证书,也可以上letsencrypt进行免费证书的申请(阿里云的路线是走不通letsencrypt的,就不用尝试阿里云服务器使用letsencrypt办法的证书了)

首先到证书资源包中申请证书总数,然后点击证书申请,可以看到单域名digicert公司签发的免费ssl证书,申请这一个申请的时候请注意你的应用服务器,笔者这里是nginx,然后完成域名的验证(如果使用的是阿里云的DNS,_TXT记录会自动生成到其中,直接点击验证即可,如果域名不同提供商,则需要手动填写一下记录)。

申请完后稍等片刻,等待证书显示已签发状态,则可以点击下载,下载该证书到本机上,有钱人可以体验部署功能。。。

手动配置ssl的请跟笔者往下走,下载的证书在本地解压出来,一个xxx.key和一个xxx.pem,将这两个文件上传至服务器的***/etc/nginx/cert***文件夹下(cert文件夹要先创建)

然后就可以进行nginx的配置了

server {
    listen 443 ssl;
    server_name example.com; #// 你的域名
    # ssl on;
    root /var/www/html; #// 前台文件存放文件夹,可改成别的
    index index.html index.htm; # // 上面配置的文件夹里面的index.html
    ssl_certificate  cert/xxx.pem; #// 改成你的证书的名字
    ssl_certificate_key cert/xxx.key; #// 你的证书的名字
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        index index.html index.htm;
    }
}
server {
    listen 80;
    server_name www.example.com example.com; # // 你的域名
    rewrite ^(.*)$ https://${server_name}$1 permanent; #// 把http的域名请求转成https
    # location / {
	# root /var/www/html;
	# index index.html index.htm;
   # }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

接下来两个命令

nginx -t #测试nginx
nignx -s reload #重启nginx,主要是重新读取文件
1
2

这里注意一下阿里云的安全组规则定义的防火墙,80与443都需要关掉。

最后访问一下,就能从不同的访问路径跳过去了。

  • http://www.example.com
  • http://example.com
  • https://www.example.com
  • https://example.com

此时浏览器的地址栏呈现的就会是一把锁的状态了,通信信息均为加密信息。

Last Updated: 2/27/2021, 11:34:03 AM