OpenSSL x509 命令详解:证书查看与解析

openssl x509 是日常运维中最常用的证书查看工具。本文聚焦于查看和解析证书信息,不涉及证书生成。 基本语法 1 openssl x509 [options] -in <certificate file> 常用查看命令 查看证书完整信息 1 openssl x509 -in cert.pem -text -noout 输出包含:版本、序列号、签名算法、颁发者、有效期、主体、公钥、扩展信息。 只查看关键字段 1 2 3 4 5 6 7 8 9 10 11 # 查看主体(Subject) openssl x509 -in cert.pem -subject -noout # 查看颁发者(Issuer) openssl x509 -in cert.pem -issuer -noout # 查看有效期 openssl x509 -in cert.pem -dates -noout # 查看序列号 openssl x509 -in cert.pem -serial -noout 查看公钥信息 1 openssl x509 -in cert....

March 27, 2026 · 2 min · 黑豆子

Nginx HTTPS 重定向最佳实践

将 HTTP 流量重定向到 HTTPS 是网站安全的基本要求。本文聚焦 Nginx 中的最佳实践配置。 标准配置(推荐) 使用两个 server 块分离 HTTP 和 HTTPS 流量: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # HTTP server - 重定向到 HTTPS server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; } # HTTPS server server { listen 443 ssl http2; server_name example.com www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # HSTS - 告诉浏览器始终使用 HTTPS add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; root /var/www/html; index index....

March 26, 2026 · 2 min · 黑豆子

SSH 密钥类型选择与格式转换

SSH 密钥认证比密码认证更安全、更方便。但面对多种密钥类型,应该如何选择?本文聚焦这个问题。 常见密钥类型对比 类型 密钥长度 安全性 性能 兼容性 ed25519 256位 极高 最快 OpenSSH 6.5+ rsa 4096位 高 较慢 广泛兼容 ecdsa 521位 高 快 较好 推荐:优先选择 Ed25519 Ed25519 是目前最推荐的 SSH 密钥类型: 安全性高:基于椭圆曲线,256位密钥相当于 RSA 3072位 性能优秀:签名和验证速度都很快 密钥简短:私钥仅 411 字节,公钥仅 98 字节 生成 Ed25519 密钥 1 ssh-keygen -t ed25519 -C "your_email@example.com" 输出示例: 1 2 3 4 5 Generating public/private ed25519 key pair. Your identification has been saved in test_key_ed25519 Your public key has been saved in test_key_ed25519....

March 26, 2026 · 1 min · 黑豆子

SSH 隧道实战:端口转发完全指南

SSH 隧道(SSH Tunneling)是 SSH 协议最强大的功能之一,通过端口转发实现安全的网络通信。本文聚焦 SSH 隧道的三种模式,每个命令都可直接使用。 本地端口转发(Local Forward) 将远程服务的端口映射到本地,适合访问内网服务。 基本语法 1 ssh -L [本地地址:]本地端口:目标主机:目标端口 跳板机用户@跳板机地址 实战案例:访问内网数据库 场景:跳板机 192.168.1.100 可访问内网数据库 10.0.0.50:3306 1 2 3 4 5 # 将远程 MySQL 映射到本地 3307 ssh -L 3307:10.0.0.50:3306 user@192.168.1.100 # 然后本地连接 mysql -h 127.0.0.1 -P 3307 -u dbuser -p 绑定特定接口 1 2 3 4 5 # 仅本机访问(默认) ssh -L 3307:10.0.0.50:3306 user@192.168.1.100 # 允许其他机器访问(注意安全风险) ssh -L 0.0.0.0:3307:10.0.0.50:3306 user@192.168.1.100 后台运行 1 2 3 4 5 # -f 后台运行,-N 不执行远程命令 ssh -fNL 3307:10....

March 25, 2026 · 2 min · 黑豆子

SSL 协议为何被弃用:从安全漏洞到 TLS 演进

SSL(Secure Sockets Layer)协议曾是最广泛使用的加密协议,但如今已被彻底弃用。本文聚焦分析 SSL 协议的安全缺陷,解释为何必须迁移到 TLS。 SSL 的三个版本 版本 发布年份 状态 SSL 1.0 未发布 存在严重缺陷,从未公开 SSL 2.0 1995 2011年正式弃用 (RFC 6176) SSL 3.0 1996 2015年正式弃用 (RFC 7568) 致命漏洞:POODLE 攻击 2014年发现的 POODLE(Padding Oracle On Downgraded Legacy Encryption)攻击是 SSL 3.0 的"死刑判决"。 漏洞原理 SSL 3.0 的 CBC 模式填充验证存在缺陷: 1 2 3 明文块: D1 D2 D3 D4 D5 D6 D7 D8 填充后: D1 D2 D3 D4 D5 D6 D7 01 (填充1字节) 或: D1 D2 D3 D4 D5 D6 02 02 (填充2字节) 攻击者可以:...

March 25, 2026 · 2 min · 黑豆子

CSR(证书签名请求)详解与实践

什么是 CSR? CSR(Certificate Signing Request,证书签名请求) 是申请 SSL/TLS 证书时向证书颁发机构(CA)提交的文件。它包含了申请者的公钥和身份信息,由申请者的私钥签名。 CSR 的用途 申请 SSL/TLS 证书 - 向 CA 提交 CSR 申请服务器证书 身份验证 - CSR 中的信息用于验证申请者身份 密钥关联 - 将公钥与域名/组织信息绑定 CSR 包含哪些信息? 一个标准的 CSR 包含以下信息: 字段 说明 示例 C (Country) 国家代码 CN ST (State) 州/省 Beijing L (Locality) 城市 Beijing O (Organization) 组织名称 Example Corp OU (Organization Unit) 部门 IT Department CN (Common Name) 通用名称/域名 example.com emailAddress 电子邮件 admin@example.com 此外,CSR 还包含: 公钥 - 与私钥配对的公钥 签名 - 使用私钥生成的数字签名 可选扩展 - 如 Subject Alternative Name (SAN) 使用 OpenSSL 生成 CSR 基本命令格式 1 2 3 4 5 # 生成私钥的同时生成 CSR(交互式) openssl req -new -newkey rsa:2048 -nodes -keyout domain....

March 24, 2026 · 4 min · 黑豆子

SSH 安全加固完全指南:从基础到高级配置

SSH(Secure Shell)是系统管理员最常用的远程访问协议,也是攻击者的首要目标。本文详细介绍 SSH 安全加固的各个层面,从基础配置到高级技巧,帮助你构建坚不可摧的 SSH 防线。 一、SSH 基础安全配置 sshd_config 核心配置 配置文件路径:/etc/ssh/sshd_config 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 26 27 28 29 30 31 32 33 # 禁用 root 登录 PermitRootLogin no # 禁用密码认证(强制密钥认证) PasswordAuthentication no PubkeyAuthentication yes # 禁用空密码 PermitEmptyPasswords no # 禁用 PAM(可选,提高安全性但可能影响某些认证方式) UsePAM no # 限制登录用户 AllowUsers admin deploy@192.168.1.0/24 # 或使用组 AllowGroups ssh-users # 设置登录超时(秒) LoginGraceTime 60 # 最大认证尝试次数 MaxAuthTries 3 # 限制会话数 MaxSessions 10 # 限制启动会话数(防止资源耗尽) MaxStartups 10:30:100 # 格式: start:rate:full # start: 开始拒绝前的未认证连接数 # rate: 拒绝概率增长速率 # full: 完全拒绝的连接数 修改默认端口 1 2 3 4 5 6 7 8 9 10 11 12 # 不要使用默认的 22 端口 Port 2222 # 或使用多个端口(便于过渡) Port 22 Port 2222 # 记得更新防火墙规则 ufw allow 2222/tcp # 或 firewall-cmd --add-port=2222/tcp --permanent firewall-cmd --reload 完整的安全配置示例 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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 # /etc/ssh/sshd_config 安全加固版 # 网络设置 Port 2222 AddressFamily inet ListenAddress 0....

March 24, 2026 · 10 min · 黑豆子

SSL/TLS 证书深度解析:从原理到实践

SSL/TLS 证书是互联网信任体系的基石。本文深入剖析证书的工作原理、类型选择、配置最佳实践,以及常见问题的排查方法。 一、证书工作原理 TLS 握手过程 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 26 27 28 29 客户端 服务器 | | | 1. ClientHello | | (支持的加密套件、TLS版本、随机数) | | --------------------------------------> | | | | 2. ServerHello | | (选定加密套件、TLS版本、随机数) | | + Certificate (服务器证书链) | | + ServerKeyExchange (可选) | | + CertificateRequest (可选,双向认证) | | <-------------------------------------- | | | | 3....

March 24, 2026 · 8 min · 黑豆子