0


【Web】X-DOC:创建Web必须知识之SSL证书

【Web】X-DOC:创建Web必须知识之SSL证书

1、什么是SSL证书?

(SSL Certificates)是HTTP明文协议升级HTTPS加密协议必备的数字证书。它在客户端(浏览器)与服务端(网站服务器)之间搭建一条安全的加密通道,对两者之间交换的信息进行加密,确保传输数据不被泄露或篡改。

网站部署全球信任的SSL证书,浏览器将直观展示网站认证信息和安全标识,访问地址由”Http”明文访问,变成了”Https“加密访问,显示醒目安全锁,点击安全锁,可查看网站认证的详细信息;使用最高级别EV SSL证书,浏览器显示绿色地址栏,单位名称直接在地址栏上显示。

支持用主域名/子域名/公网IP地址申请SSL证书。

2、SSL证书有哪些类型?

SSL证书是一种用于加密和验证网站身份的数字证书。根据其用途和验证级别的不同,SSL证书可以分为以下几种类型:

  • 域名验证证书(DV证书):这是最常见的SSL证书类型,用于验证网站的域名是否有效。它只需要验证域名的所有权,通常在几分钟内就可以颁发。
  • 组织验证证书(OV证书):这种证书不仅验证域名的所有权,还验证了网站背后的组织或企业的合法性。颁发这种证书需要进行更严格的验证过程,通常需要几天的时间。
  • 增强验证证书(EV证书):EV证书提供了最高级别的验证和信任。它不仅验证域名和组织的合法性,还要求进行更详细的验证,包括组织的法律地位和身份验证。EV证书会在浏览器地址栏中显示绿色的公司名称,增加了用户对网站的信任。

3、SSL证书管理服务中,单域名、多域名、泛域名的区别是什么?

SSL证书管理服务支持的“域名类型”有“单域名”、“多域名”和“泛域名”3种类型。

  • 单域名ssl:仅支持绑定1个普通域名,如 xlevon.cn 。
  • 多域名ssl:支持绑定指定数量的多个普通域名,可以是同一级别的,也可以是不同级别的,如3域名,可以支持如 xlevon.cn,abc.xlevon.cn,linux.study.xlevon.com 。
  • 泛域名ssl:支持绑定带有一个通配符““且以“.”开头的同级域名,如 *.xlevon.cn,该泛域名包含 xlevon.cn 。

如果仅为个人用途,作为域名验证,可以申请泛域名ssl,能够支持主域名和任意多个二级域名,可以省去重复申请的麻烦。

4、Ubuntu通过certbot手动配置Let’s Encrypt SSL泛型域名证书

Ubuntu通过certbot手动配置Let’s Encrypt SSL泛型域名证书

4.1、安装Snap

使用命令安装snap,以及core组件

sudoaptinstall snapd
sudo snap install core
sudo snap refresh core

4.2、移除旧有的certbot

sudoapt-get remove certbot

4.3、安装certbot

sudo snap install --classic certbot

创建软链接,确保certbot命令能够在环境中找到:

sudoln -s /snap/bin/certbot /usr/bin/certbot

4.4、使用certbot申请泛型域名证书

sudo certbot certonly \
--manual \
--preferred-challenges=dns \
--server https://acme-v02.api.letsencrypt.org/directory \
--agree-tos \
-m 4**[email protected] \
-d *.xlevon.cn

然后它会生成一串随机字符,要求在域名管理页面将随机字符加入到_acme-challenge.xlevon.cn的DNS TXT解析中
在这里插入图片描述
在添加完毕之后,可以通过检查https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.example.com 来观察是否TXT已经正确解析。当观察到完成解析之后(或超过域名解析管理要求的TTL时间之后),按下enter键确认,certbot将生成证书文件以及证书路径。
在这里插入图片描述
可以查看所有保存的证书:

sudo certbot certificates

通常,certbot将在/etc/letsencrypt/live/xlevon.cn/下生成4个文件:
cert.pem:证书文件
chain.pem:证书链文件
fullchain.pem:完整证书链文件
privkey.pem:证书私钥

其中,我们在配置SSL/TLS时通常只会用到fullchain.pem以及privkey.pem文件。

证书每过三个月会过期,但是可以无限续签,可通过以上命令重新申请,也可重新需续签:

sudo certbot renew --force-renew

自动续签:

crontab -e
031sudo certbot renew --force-renew

certbot的更新证书命令,这个命令会自动判断是否需要更新,如果没有满足条件,会跳过更新。

crontab -e
03 /7 sudo certbot renew --cert-name .xlevon.cn --post-hook "sudo systemctl restart nginx"

上面命令表示每隔7天凌晨3点执行证书更新操作。

5、nginx配置SSL并反向代理本地&局域网内服务

user  www www;
worker_processes auto;
error_log  /www/wwwlogs/nginx_error.log  crit;
pid        /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;

events
    {
        use epoll;
        worker_connections 51200;
        multi_accept on;
    }

http
    {
        include       mime.types;
            # 代理服务器的最大连接数
            proxy_connect_timeout 600;
            
            # 反向代理缓存的时间
            proxy_cache_valid 200 302 1h;
            
            # 反向代理缓存的最大字节数
            # proxy_cache_max_size 5m;
            
            # 反向代理缓存的路径
            proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

server
    {
        listen 80;
        server_name *.xlevon.cn;
        
        # 重定向HTTP请求到HTTPS
        return 301 https://$server_name$request_uri;
    }
    
# HTTPS配置
server {
  listen 443 ssl;
  server_name www.xlevon.cn;
  
  # SSL证书的路径和密钥
  ssl_certificate /etc/letsencrypt/live/xlevon.cn/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/xlevon.cn/privkey.pem;
  
  # 反向代理配置-本机服务
  location / {
    proxy_pass http://localhost:8090;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

server {
  listen 443 ssl;
  server_name jellyfin.xlevon.cn;
  
  # SSL证书的路径和密钥
  ssl_certificate /etc/letsencrypt/live/xlevon.cn/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/xlevon.cn/privkey.pem;
  
  # 反向代理配置-局域网服务
  location / {
    proxy_pass http://192.168.110.242:8096;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }
}

原创文章,转载请注明来源-X档案

标签: 前端 ssl 网络协议

本文转载自: https://blog.csdn.net/XLevon/article/details/143258364
版权归原作者 X档案库 所有, 如有侵权,请联系我们删除。

“【Web】X-DOC:创建Web必须知识之SSL证书”的评论:

还没有评论