首页
Search
1
Linux 常用命令速查手册
4 阅读
2
vSphere 虚拟机磁盘扩容标准操作流程
2 阅读
3
RHEL/CentOS 7.9 Chrony 时间同步服务
2 阅读
4
Everything 搜索语法速查
1 阅读
5
使用私有 CA 为内网 IP 签发 TLS 服务器证书
1 阅读
默认分类
服务器
VMware
vSphere
Linux
Windows
数据库
登录
Search
agblr
累计撰写
5
篇文章
累计收到
0
条评论
首页
栏目
默认分类
服务器
VMware
vSphere
Linux
Windows
数据库
页面
搜索到
3
篇与
的结果
2026-08-26
使用私有 CA 为内网 IP 签发 TLS 服务器证书
文档版本:v1.0 适用场景:内网服务(如 Kubernetes、Web 服务、中间件)使用 IP 地址访问,需启用 HTTPS 证书有效期:约 73 年(26645 天,仅适合内网/测试,生产建议 1–3 年)一、前置条件项目要求操作系统Linux / macOS工具OpenSSL 1.1.1 及以上权限可创建目录、生成文件的普通用户即可网络无外网要求二、证书体系说明根 CA(自签) ├── ca.key # CA 私钥(必须严格保密) ├── ca.crt # CA 证书(分发到所有客户端信任库) │ └── 服务器证书(由 CA 签发) ├── server.key # 服务器私钥 ├── public.crt # 服务器证书(含 IP SAN) └── chain.crt # 证书链(单级 CA = ca.crt)关键点:客户端(浏览器/程序)只需信任 ca.crt,即可信任该 CA 签发的所有服务器证书。三、操作步骤步骤 1:创建根 CA(只需执行一次)# 1. 生成 CA 私钥 openssl genrsa -out ca.key 4096 # 2. 自签 CA 证书 openssl req -x509 -new -nodes -key ca.key -sha256 -days 26645 \ -subj "/C=CN/ST=Fujian/L=Xiamen/O=G8.6/OU=CIM/CN=G8.6-CIM-IS" \ -out ca.crt产出文件:文件说明保密级别ca.keyCA 私钥⚠️ 绝密,离线存储ca.crtCA 证书公开分发步骤 2:为服务器 IP 签发证书以下以 10.113.120.12 为例,多台服务器重复此步骤即可。IP=10.113.120.12 mkdir -p certs/$IP # 2.1 生成服务器私钥 openssl genrsa -out certs/$IP/server.key 2048 # 2.2 生成 CSR(CN 填 IP,实际校验以 SAN 为准) openssl req -new -key certs/$IP/server.key \ -subj "/C=CN/ST=Fujian/L=Xiamen/O=G8.6/OU=CIM/CN=$IP" \ -out certs/$IP/server.csr # 2.3 CA 签发证书(强制写入 IP SAN) openssl x509 -req -in certs/$IP/server.csr \ -CA ca.crt -CAkey ca.key -CAcreateserial \ -days 26645 -sha256 -out certs/$IP/public.crt \ -extfile <(printf "basicConstraints=CA:FALSE\nkeyUsage=digitalSignature,keyEncipherment\nextendedKeyUsage=serverAuth\nsubjectAltName=IP:%s" $IP) # 2.4 生成证书链(单级 CA,chain.crt = ca.crt) cp ca.crt certs/$IP/chain.crt产出文件(每台服务器独立目录):文件说明部署位置server.key服务器私钥服务端,权限 600public.crt服务器证书服务端chain.crt证书链服务端(部分程序需要)步骤 3:为更多服务器重复签发(示例)# 第二台服务器 IP=10.113.120.13 mkdir -p certs/$IP openssl genrsa -out certs/$IP/server.key 2048 openssl req -new -key certs/$IP/server.key \ -subj "/C=CN/ST=Fujian/L=Xiamen/O=G8.6/OU=CIM/CN=$IP" \ -out certs/$IP/server.csr openssl x509 -req -in certs/$IP/server.csr \ -CA ca.crt -CAkey ca.key -CAcreateserial \ -days 26645 -sha256 -out certs/$IP/public.crt \ -extfile <(printf "basicConstraints=CA:FALSE\nkeyUsage=digitalSignature,keyEncipherment\nextendedKeyUsage=serverAuth\nsubjectAltName=IP:%s" $IP) cp ca.crt certs/$IP/chain.crt📌 提示:可将步骤 2 封装为脚本 issue-cert.sh <IP>,避免重复劳动。四、最终目录结构. ├── ca.key # CA 私钥(绝密) ├── ca.crt # CA 证书(分发给客户端) ├── ca.srl # CA 序列号(自动生成,保留) └── certs/ ├── 10.113.120.12/ │ ├── server.key # 服务器私钥 │ ├── server.csr # CSR(可归档或删除) │ ├── public.crt # 服务器证书 │ └── chain.crt # 证书链 └── 10.113.120.13/ ├── server.key ├── server.csr ├── public.crt └── chain.crt五、验证5.1 检查证书内容(确认 IP SAN 已写入)openssl x509 -in certs/10.113.120.12/public.crt -noout -text | grep -A1 "Subject Alternative Name"预期输出:X509v3 Subject Alternative Name: IP Address:10.113.120.125.2 用 OpenSSL 验证证书链openssl verify -CAfile ca.crt certs/10.113.120.12/public.crt预期输出:public.crt: OK5.3 客户端信任配置客户端操作Linux(信任系统 CA)将 ca.crt 复制到 /usr/local/share/ca-certificates/,执行 update-ca-certificatesWindows双击 ca.crt → 安装到「受信任的根证书颁发机构」Java 应用keytool -import -trustcacerts -file ca.crt -keystore cacerts浏览器导入 ca.crt 到「受信任的根证书」curlcurl --cacert ca.crt https://10.113.120.12六、注意事项#事项说明1CA 私钥安全ca.key 一旦泄露,攻击者可为任意域名/IP 签发可信证书;建议加密存储或离线保存2有效期26645 天 ≈ 73 年,仅适合内网/测试;生产环境建议 365–825 天3证书轮换到期前需重新签发,客户端无需重新信任 CA(CA 未变)4CN vs SAN现代客户端(Chrome、Go、Java 等)只认 SAN,CN 仅作兜底;本方案 SAN 已正确配置5多 IP / DNS如需支持多个 IP 或域名,修改 subjectAltName 行,例如:IP:10.113.120.12,DNS:server.example.com6权限服务器私钥文件权限建议 600,属主为运行服务的用户七、附录:快速签发脚本(可选)如需频繁签发,可保存为 issue-cert.sh:#!/bin/bash set -e IP=$1 if [ -z "$IP" ]; then echo "用法: $0 <IP地址>" exit 1 fi mkdir -p certs/$IP openssl genrsa -out certs/$IP/server.key 2048 openssl req -new -key certs/$IP/server.key \ -subj "/C=CN/ST=Fujian/L=Xiamen/O=G8.6/OU=CIM/CN=$IP" \ -out certs/$IP/server.csr openssl x509 -req -in certs/$IP/server.csr \ -CA ca.crt -CAkey ca.key -CAcreateserial \ -days 26645 -sha256 -out certs/$IP/public.crt \ -extfile <(printf "basicConstraints=CA:FALSE\nkeyUsage=digitalSignature,keyEncipherment\nextendedKeyUsage=serverAuth\nsubjectAltName=IP:%s" $IP) cp ca.crt certs/$IP/chain.crt echo "✅ 证书已生成: certs/$IP/"赋执行权限:chmod +x issue-cert.sh使用:./issue-cert.sh 10.113.120.14
2026年08月26日
1 阅读
0 评论
0 点赞
2026-07-15
RHEL/CentOS 7.9 Chrony 时间同步服务
一、文档信息项目内容适用系统RHEL/CentOS 7.9服务名称chronyd端口UDP 123配置文件/etc/chrony.conf二、时间同步检查流程2.1 快速状态检查# 1. 检查系统时间同步状态 timedatectl期望输出:System clock synchronized: yesNTP service: active# 2. 检查 chrony 服务状态 systemctl status chronyd期望输出:Active: active (running)2.2 详细 NTP 源检查# 1. 查看 NTP 服务器源状态 chronyc sources -v状态符号说明:^* = 当前最佳源(系统正在使用)^+ = 良好备用源^- = 被排除的源^? = 源不可达或不可用^x = 被认为错误的源^~ = 时间波动太大# 2. 查看时间同步详情 chronyc tracking关键指标:Stratum:层级(1–15,越小越准确)System time:与 NTP 时间的偏差Leap status:Normal(正常)2.3 网络连通性检查# 测试内部 NTP 服务器连通性 ping -c 3 10.113.128.1 # 测试外部 NTP 服务器连通性 ping -c 3 ntp.aliyun.com三、Chrony 服务管理3.1 服务启停# 启动 chrony 服务 systemctl start chronyd # 停止 chrony 服务 systemctl stop chronyd # 重启 chrony 服务 systemctl restart chronyd # 重新加载配置(不重启服务) systemctl reload chronyd # 设置开机自启 systemctl enable chronyd # 删除开机自启 systemctl disable chronyd3.2 服务状态检查# 查看服务状态 systemctl status chronyd # 查看服务日志(实时) journalctl -u chronyd -f # 查看最近 50 行日志 journalctl -u chronyd --no-pager | tail -50四、Chrony 配置管理4.1 标准配置文件(/etc/chrony.conf)# 内部 NTP 服务器(主) server 10.113.128.1 iburst # 外部公共 NTP 服务器(备用) server ntp.aliyun.com iburst server ntp1.tencent.com iburst server cn.pool.ntp.org iburst参数说明:iburst:加速初始同步minpoll 6:最短轮询间隔 64 秒(2⁶)maxpoll 10:最长轮询间隔 1024 秒(2¹⁰)prefer:标记为首选服务器noselect:监控但不使用该源4.2 配置文件修改流程# 1. 备份原配置 cp /etc/chrony.conf /etc/chrony.conf.bak_$(date +%Y%m%d) # 2. 编辑配置文件 vi /etc/chrony.conf # 3. 检查配置文件语法(部分版本支持) chronyc -c reload sources # 4. 重新加载或重启服务 systemctl restart chronyd # 或 systemctl reload chronyd4.3 紧急手动时间设置# 查看当前时间 date # 手动设置时间(格式:YYYY-MM-DD HH:MM:SS) timedatectl set-time "2025-12-06 10:30:00"五、故障排查流程5.1 常见问题及解决方案问题现象可能原因解决方案System clock synchronized: no1. chronyd 未运行2. 无 NTP 服务器配置3. 网络不通1. systemctl start chronyd2. 编辑 /etc/chrony.conf3. 检查网络 / DNSchronyc sources 显示 ^?NTP 服务器不可达1. 检查网络连通性2. 检查防火墙3. 更换 NTP 服务器时间偏差很大初始时间设置错误1. 手动设置近似时间服务启动失败配置文件语法错误1. 检查配置文件2. 查看日志 journalctl -u chronyd层级(Stratum)过高时间源质量差1. 添加更多 NTP 服务器2. 设置 prefer 标记优选服务器5.2 防火墙配置# 检查防火墙状态 systemctl status firewalld firewall-cmd --state # 放行 NTP 服务(UDP 123) firewall-cmd --add-service=ntp --permanent firewall-cmd --reload # 验证规则 firewall-cmd --list-services | grep ntp5.3 DNS 配置检查# 检查 DNS 解析 nslookup ntp.aliyun.com nslookup 10.113.128.1 # 临时设置 DNS echo "nameserver 114.114.114.114" >> /etc/resolv.conf echo "nameserver 8.8.8.8" >> /etc/resolv.conf六、监控与维护6.1 日常监控命令# 监控时间同步状态(每 10 秒刷新) watch -n 10 'chronyc sources -v; echo "---"; chronyc tracking' # 查看时间偏差趋势 chronyc sourcestats6.2 日志检查# 实时查看日志 journalctl -u chronyd -f # 查看错误日志 journalctl -u chronyd -p err # 查看最近 100 行日志 journalctl -u chronyd -n 1006.3 性能指标指标正常范围检查命令时间偏差< 100mschronyc tracking层级(Stratum)2–5chronyc tracking服务器可达性377(八进制)chronyc sources轮询间隔64–1024 秒chronyc sources七、应急恢复流程7.1 Chrony 完全故障恢复# 1. 停止服务 systemctl stop chronyd # 2. 备份并重置配置 cp /etc/chrony.conf /etc/chrony.conf.bak cat > /etc/chrony.conf << EOF server 10.113.128.1 iburst server ntp.aliyun.com iburst server ntp1.tencent.com iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync keyfile /etc/chrony.keys leapsectz right/UTC logdir /var/log/chrony local stratum 10 EOF # 3. 清除状态文件 rm -f /var/lib/chrony/* # 4. 启动服务 systemctl start chronyd # 5. 强制同步 chronyc -a makestep7.2 时间严重偏差恢复# 1. 停止 chrony systemctl stop chronyd # 2. 使用 ntpdate 手动同步 ntpdate -u 10.113.128.1 # 3. 启动 chrony systemctl start chronyd # 4. 检查状态 chronyc sources -v八、附录8.1 常用命令速查表命令功能示例timedatectl查看时间状态timedatectlchronyc sources查看 NTP 源chronyc sources -vchronyc tracking查看同步详情chronyc trackingchronyc activity查看活动状态chronyc activitychronyc ntpdata查看 NTP 数据chronyc ntpdatasystemctl status chronyd服务状态systemctl status chronydjournalctl -u chronyd查看日志journalctl -u chronyd -f8.2 国内推荐 NTP 服务器# 阿里云 ntp.aliyun.com ntp1.aliyun.com ntp2.aliyun.com # 腾讯云 ntp1.tencent.com ntp2.tencent.com time1.cloud.tencent.com # 国内公共 NTP 池 cn.pool.ntp.org # 教育网 ntp.tuna.tsinghua.edu.cn s1a.time.edu.cn8.3 配置验证清单[ ] chronyd 服务状态为 active (running)[ ] timedatectl 显示 System clock synchronized: yes[ ] chronyc sources 至少有一个 ^* 源[ ] chronyc tracking 显示 Leap status: Normal[ ] 时间偏差小于 100ms[ ] 防火墙已放行 UDP 123 端口[ ] DNS 可解析 NTP 服务器域名[ ] 日志无错误信息
2026年07月15日
2 阅读
0 评论
0 点赞
2026-07-15
vSphere 虚拟机磁盘扩容标准操作流程
一、前置说明本文适用于通过堡垒机登录 vSphere,对 Linux 虚拟机进行在线磁盘扩容的场景。操作前请务必确认业务可短暂停写,且已做好数据备份。二、登录 vSphere 并打开控制台通过堡垒机登录对应 vSphere 环境在 vSphere 顶部搜索框中,输入目标设备的 主机名或 IP,回车搜索在搜索结果中选中目标虚拟机,向下滑动页面点击 「启动 Web 控制台」若屏幕锁定,向上滑动解锁点击 「Not listed?」,切换为 root 用户登录输入用户名,点击 Next输入密码,点击 Sign In 或直接回车三、登录系统并查看当前磁盘在桌面空白处 右键 → 打开终端执行以下命令,查看当前磁盘结构:lsblk记录当前磁盘设备名(如 sda、sdb、sdc 等)及分区情况,为后续扩容做对照。四、在 vSphere 中为虚拟机创建快照(强烈建议)⚠️ 重要:扩容前务必先打快照,防止误操作导致数据丢失。切回 vSphere 管理界面选中目标虚拟机,点击 「快照」→「生成快照」填写快照名称(建议包含日期和用途,如 Before-disk-expand-20260121)点击 「创建」在底部 「近期任务」 中查看快照创建进度快照创建完成后,确认状态为 完成五、在 vSphere 中添加新硬盘在 vSphere 中选中目标虚拟机,点击 「操作」→「编辑设置」点击 「添加新设备」→「硬盘」设置新增硬盘容量(按需填写,如 100 GB)点击新添加的硬盘,展开详细配置:磁盘置备:选择 精简置备其余参数保持默认点击 「确定」 保存配置六、系统内识别新磁盘并分区回到 Web 控制台终端再次执行:lsblk此时应能看到新增加的磁盘(如 /dev/sdc),但无分区。对新磁盘进行分区:fdisk /dev/sdc按如下顺序输入:输入含义n新建分区p主分区回车默认分区号 1回车默认起始扇区回车默认结束扇区(使用整块磁盘)w保存并退出再次查看分区结果:lsblk确认出现新分区 /dev/sdc1。七、LVM 扩容操作1. 创建物理卷(PV)pvcreate /dev/sdc12. 将 PV 加入现有卷组(VG)本文示例卷组名为 vg01,请根据实际情况替换。vgextend vg01 /dev/sdc13. 扩展逻辑卷(LV)本文示例逻辑卷为 /dev/vg01/lv01,请按实际路径调整。lvextend -l +100%FREE /dev/vg01/lv014. 刷新文件系统⚠️ 注意:以下命令需根据实际文件系统类型选择其一。XFS 文件系统(常见于 CentOS 7+):xfs_growfs /dev/vg01/lv01ext4 文件系统:resize2fs /dev/vg01/lv01八、验证扩容结果执行以下任一命令进行验证:df -h或lsblk确认目标挂载点容量已正确增加。九、注意事项与最佳实践✅ 生产环境建议在 业务低峰期 操作✅ 扩容前必须 创建快照✅ 确认文件系统类型后再执行刷新命令✅ 操作后观察业务日志,确保无异常✅ 如扩容失败,可通过快照 恢复到操作前状态十、常见问题排查lsblk 看不到新盘? 尝试执行 echo "- - -" > /sys/class/scsi_host/host0/scan 触发总线扫描(host 编号根据实际情况调整)。xfs_growfs 报错? 确认 LV 已成功扩展,且挂载点正确(可先用 df -h 查看挂载路径)。vgextend 提示找不到 VG? 使用 vgdisplay 或 vgs 确认卷组名称是否正确。
2026年07月15日
2 阅读
0 评论
0 点赞