如何给网站增加安全认证Https

4/25/2023 Linux

🍉 我们知道网站一般有2种访问协议,httphttps

  • http是一个简单的请求-响应协议,http访问的网站通常浏览器会有个感叹号,显示不安全。

  • https是在HTTP的基础上加入SSL,通过传输加密和身份认证保证传输过程的安全性,访问网站会显示一把锁,显示连接是安全的。

配置https安全通道主要分为购买证书、申请认证、下载证书、上传证书到web服务器、配置站点ssl...

此文以nginx阿里云为例进行讲解。

# 购买SSL证书

首先证书分为:单域名、通配符域名、多域名证书

  • 单域名:只能绑定一个域名,例如:www.abc.comabc.com。无法绑定子域名
  • 通配符域名:可以绑定一个主域名和多个子域名,不限个数,例如:abc.commy.abc.comkk.abc.com...
  • 多域名:可以绑定不同的域名,可以是主域名也可以是子域名,数量有限制

阿里云域名账号每年可以免费购买20个证书,有效期为1年

1.进入阿里云控制台=》SSL证书=》免费证书=》立即购买

点击立即购买即可

# 申请认证

1.进入ssl证书管理页面=》免费证书,可以看到已经有20个创建数量,点击创建证书,列表增加了一个待申请的项

2.点击证书申请,填写信息,提交审核

联系人点击下拉选项先新建联系人,证书绑定域名必须输入准确的域名,别输错啦;

注意域名验证方式有自动DNS验证手动DNS验证,因为我的是阿里云服务器默认选自动验证,如果非阿里云服务器,需要手动DNS验证。

信息填写完毕最后提交审核

3.进行DNS验证,如果是手工验证方式需要先到域名控制台配置域名解析

第二步提交审核成功后,会出现如下界面

复制红框处的信息,前往域名控制台配置域名解析,ps:如果是自动DNS验证可以跳过此步骤,系统会自动配置好

添加记录成功后,返回证书申请界面点击验证,验证成功,再提交审核 成功提交后,静等个几分钟,会邮件通知签发完成,接下来就可以下载证书进行配置了

# 下载证书

回到ssl证书管理列表,找到刚签发成功的证书,点击下载,下载对应的web服务器证书,我这里用的是nginx,我就下载nginx的

下载的文件为一个压缩包,解压后主要包含2个文件,xxxx.pem,xxx.key

# 上传证书到Web服务器

登陆Linux定位到nginx的安装目录,找到conf目录,在此目录下新建文件夹cert

cd /usr/local/webserver/nginx/conf
mkdir cert
1
2

使用ftp工具把下载的证书上传到cert目录 证书上传完成

# 配置站点SSL

# 1.编辑nginx配置文件nginx.conf

cd /usr/local/webserver/nginx/conf
vim nginx.conf
1
2

将原来注释的server listen 443 ssl配置,增加或编辑,改为关联自己的站点,增加新的站点也是按此方式配置

server {
    listen       443 ssl;
    server_name  www.luckyzp.top;

    # 上传的证书的位置
    ssl_certificate      cert/9806668_www.luckyzp.top.pem;
    ssl_certificate_key  cert/9806668_www.luckyzp.top.key;

    # ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers  on;

    # 站点路径
    location / {
        root /home/wwwroot/myblog/;
        index index.html;
        try_files $uri $uri/ /index.html;
        autoindex on;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

保存修改,运行命令编译,再重启nginx就配置完成了...

nginx -t
nginx -s stop
ngix
1
2
3

然后我们在浏览器输入地址验证,可以看到网站已经带安全标志了

# 2.配置http跳转到https

最后一步还需要把原来的http设置跳转到新的https,我们知道在浏览器输入xxx.com默认访问的是http 80端口, 跳转到https 443端口,有2种方式,1是使用rewrite重写url,2是通过301重定向到https,这里推荐使用第2种方法

server {
    listen 80;
    server_name  luckyzp.top;
    # 将所有HTTP请求通过重定向到HTTPS。
    return 301 https://$host$request_uri;
}
1
2
3
4
5
6

OK,全部操作完成了,以上就是设置网站安全认证的全部流程

Last Updated: 5/29/2023, 2:59:41 PM