IPSEC证书体系构建:从OpenSSL根CA到StrongSwan隧道实战
1. 这不是“配个证书”那么简单IPSEC CA配置的真实战场很多人看到“IPSEC CA证书配置”这六个字第一反应是翻出某厂商文档照着步骤点几下CA服务器界面导出个.crt、.key再填进防火墙或路由器的证书栏——完事。我试过三次这么干前两次都卡在Phase 2密钥协商失败第三次虽然连上了但三天后突然断连抓包发现是证书吊销状态未同步客户端还在用已被标记为invalid的证书尝试握手。这才明白IPSEC不是HTTP它不靠浏览器自动刷新CRLCA也不是个“发证窗口”而是一整套需要持续运维的信任基础设施。这个标题背后实际藏着三重硬仗第一重是密码学逻辑的落地校验——RSA密钥长度、签名算法SHA256 vs SHA384、证书扩展字段如Key Usage必须含digitalSignature和keyEnciphermentExtended Key Usage必须含serverAuth/clientAuth稍有错位IKEv2握手直接在Certificate Request阶段就静默失败第二重是拓扑感知的配置对齐——你的CA服务器IP是否在IPSEC网关的可信DNS解析范围内证书里的Subject Alternative NameSAN是否包含网关实际对外暴露的FQDN或IP很多项目失败根源不是技术不会而是把测试环境里写的192.168.1.1直接抄到生产而生产网关对外只暴露一个公网域名第三重是生命周期管理的工程化缺失——自签名CA的根证书有效期动辄10年但中间证书Intermediate CA通常设为3年终端实体证书End-Entity Cert只给1年三者过期时间错开意味着你每年要轮换一次网关证书每三年要更新一次中间CA十年才碰一次根CA。没人建日历提醒等告警邮件来时全网IPSEC隧道已集体中断。所以这篇内容不是教你怎么点按钮而是带你从零搭一套可验证、可审计、可演进的IPSEC证书体系。我会用OpenSSL手动生成全套证书链Root CA → Intermediate CA → Gateway Cert全程不依赖图形化CA界面所有命令附参数原理说明然后在StrongSwan网关上完成完整配置包括CRL分发点CDP的Nginx托管、OCSP响应器集成、以及最关键的——如何用openssl s_client实时验证证书链有效性最后给你一份生产级检查清单覆盖从证书生成到隧道建立的17个关键断点。无论你是刚接触IPSEC的网络工程师还是被客户临时拉来救火的安全运维这套流程都能让你在两小时内跑通第一条双向加密隧道并清楚知道每个环节“为什么必须这样”。2. CA服务器不是“装个软件”从OpenSSL命令行构建可信根市面上很多教程一上来就说“部署Windows Server AD CS”或“用Easy-RSA”前者绑定微软生态后者默认用MD5签名已淘汰。但真实企业环境里你更可能面对的是一台CentOS 7物理服务器、无域控、需对接现有LDAP、且安全团队明确要求“所有证书必须使用RSA-3072SHA384”。这时候图形化CA反而成了障碍——你无法精确控制X.509扩展字段也无法审计私钥生成过程是否真用了/dev/urandom。所以我坚持用OpenSSL原生命令行搭建因为它的每个参数都是可追溯、可复现、可写入Ansible Playbook的。2.1 根CA私钥与证书信任锚点的诞生首先创建根CA目录结构mkdir -p /opt/ca/root/{private,db,certs,newcerts} chmod 700 /opt/ca/root/private touch /opt/ca/root/db/index echo 01 /opt/ca/root/db/serial这里的关键不是目录名而是权限控制/opt/ca/root/private必须是700否则OpenSSL会拒绝读取私钥——这是OpenSSL的硬性安全策略不是建议。接着生成根CA私钥openssl genrsa -aes256 -out /opt/ca/root/private/ca.key.pem 3072注意三个参数-aes256表示用AES-256-CBC加密私钥文件防止磁盘泄露-out指定输出路径3072是密钥长度。为什么是3072NIST SP 800-57规定RSA-2048提供约112位安全强度RSA-3072提供128位而当前主流IPSEC实现如StrongSwan、Cisco IOS-XE已全面支持3072且性能损耗可忽略实测密钥交换耗时仅增加0.8ms。生成后用以下命令验证私钥完整性openssl rsa -in /opt/ca/root/private/ca.key.pem -check -noout若返回RSA key ok说明私钥未损坏若提示unable to load Private Key大概率是密码输错或文件权限不对。接下来签发根CA证书openssl req -config /opt/ca/root/openssl.cnf -key /opt/ca/root/private/ca.key.pem -new -x509 -days 3650 -sha384 -extensions ca_ext -out /opt/ca/root/certs/ca.cert.pem核心参数解析-config指向自定义配置文件后文详述这是控制X.509扩展字段的唯一途径-x509生成自签名证书非CSR-days 365010年有效期符合根CA长期信任定位-sha384签名哈希算法SHA384比SHA256抗碰撞能力更强2^192 vs 2^128且避免某些旧设备对SHA256的兼容性问题-extensions ca_ext调用配置文件中[ca_ext]段定义的扩展字段。/opt/ca/root/openssl.cnf关键内容如下[ ca ] default_ca CA_default [ CA_default ] dir /opt/ca/root database $dir/db/index serial $dir/db/serial private_key $dir/private/ca.key.pem certificate $dir/certs/ca.cert.pem [ req ] distinguished_name req_distinguished_name x509_extensions ca_ext prompt no [ req_distinguished_name ] C CN ST Beijing L Haidian O MyCompany OU NetworkSecurity CN MyCompany Root CA [ ca_ext ] basicConstraints critical, CA:true keyUsage critical, digitalSignature, cRLSign, keyCertSign subjectKeyIdentifier hash authorityKeyIdentifier keyid:always, issuer重点看[ca_ext]段basicConstraints critical, CA:true声明这是CA证书非终端证书critical表示该字段不可忽略keyUsage中cRLSign和keyCertSign是CA证书的必备权限缺一不可subjectKeyIdentifier hash生成SKISubject Key Identifier这是后续证书链验证的锚点。生成后用以下命令验证证书内容openssl x509 -in /opt/ca/root/certs/ca.cert.pem -text -noout | grep -E (Issuer|Subject|Signature Algorithm|X509v3.*:)你应该看到Issuer和Subject完全相同自签名Signature Algorithm为sha384WithRSAEncryption且X509v3 Extensions包含CA:TRUE和keyCertSign。提示根CA证书生成后必须立即备份私钥并离线存储。我习惯用gpg --symmetric --cipher-algo AES256 ca.key.pem加密后存U盘再物理锁进保险柜。线上服务器只保留公钥证书ca.cert.pem这是最小权限原则的铁律。2.2 中间CA解耦根CA与日常签发的必经之路根CA绝不应直接签发终端证书——这是PKI设计的黄金法则。一旦中间CA私钥泄露只需吊销其证书不影响根CA信任链若根CA私钥泄露则整个信任体系崩溃。因此我们创建中间CAmkdir -p /opt/ca/intermediate/{private,db,certs,newcerts} chmod 700 /opt/ca/intermediate/private touch /opt/ca/intermediate/db/index echo 01 /opt/ca/intermediate/db/serial生成中间CA私钥同样3072位openssl genrsa -aes256 -out /opt/ca/intermediate/private/intermediate.key.pem 3072创建中间CA证书签名请求CSRopenssl req -config /opt/ca/intermediate/openssl.cnf -key /opt/ca/intermediate/private/intermediate.key.pem -new -sha384 -out /opt/ca/intermediate/certs/intermediate.csr.pem注意此处-config指向中间CA专用配置文件其[req_distinguished_name]中CN应为MyCompany Intermediate CA与根CA区分。用根CA签发中间CA证书openssl ca -config /opt/ca/root/openssl.cnf -extensions v3_intermediate_ca -days 1095 -notext -md sha384 -in /opt/ca/intermediate/certs/intermediate.csr.pem -out /opt/ca/intermediate/certs/intermediate.cert.pem关键参数-extensions v3_intermediate_ca调用根CA配置文件中的[v3_intermediate_ca]段-days 10953年有效期平衡安全性与运维频率-notext不输出证书文本到终端避免敏感信息泄露。根CA配置文件中需新增[v3_intermediate_ca]段[ v3_intermediate_ca ] basicConstraints critical, CA:true, pathlen:0 keyUsage critical, digitalSignature, cRLSign, keyCertSign subjectKeyIdentifier hash authorityKeyIdentifier keyid:always, issuer与根CA相比多了pathlen:0——表示该中间CA不能再签发下一级CA即只能签终端证书这是防止证书链无限延伸的关键约束。签发完成后验证中间CA证书openssl x509 -in /opt/ca/intermediate/certs/intermediate.cert.pem -text -noout | grep -A1 Authority Information Access应看到CA Issuers - URI:http://ca.mycompany.com/ca.cert.pem这是后续客户端下载根CA证书的地址。注意中间CA证书必须与根CA证书合并为证书链文件chain.pem供IPSEC网关使用。命令为cat /opt/ca/intermediate/certs/intermediate.cert.pem /opt/ca/root/certs/ca.cert.pem /opt/ca/intermediate/certs/chain.pem。顺序不能颠倒——中间CA在前根CA在后否则某些设备如FortiGate会拒绝加载。2.3 证书链验证用OpenSSL亲手走一遍信任路径很多故障源于证书链不完整。例如你只给了网关intermediate.cert.pem没给ca.cert.pem那么网关无法验证中间CA的合法性。验证方法如下# 步骤1验证中间CA证书是否由根CA签发 openssl verify -CAfile /opt/ca/root/certs/ca.cert.pem /opt/ca/intermediate/certs/intermediate.cert.pem # 步骤2验证证书链文件是否有效 openssl verify -CAfile /opt/ca/root/certs/ca.cert.pem /opt/ca/intermediate/certs/chain.pem # 步骤3模拟客户端验证关键 openssl s_client -connect gateway.mycompany.com:443 -CAfile /opt/ca/root/certs/ca.cert.pem -servername gateway.mycompany.com在步骤3中-servername触发SNIServer Name Indication确保网关返回正确的证书若返回Verify return code: 0 (ok)说明链完整且可信。若返回unable to get local issuer certificate则证明链缺失根CA若返回certificate revoked则需检查CRL。我曾遇到一个案例客户用Nginx托管CRL但Nginx配置了add_header Strict-Transport-Security max-age31536000; includeSubDomains导致CRL下载被HSTS强制跳转HTTPS而CRL URL写的是HTTP。结果所有IPSEC客户端因无法获取CRL而拒绝连接。解决方案是CRL分发点必须用HTTPRFC 5280规定且Nginx需禁用HSTS头。3. IPSEC网关配置StrongSwan实战中的12个生死细节StrongSwan是Linux平台最成熟的IPSEC实现但它的配置文件ipsec.conf和证书管理swanctl存在大量隐式约定。我见过太多人按文档配置后隧道能Up但数据不通——问题往往出在MTU、NAT-T或证书匹配规则上。以下基于StrongSwan 5.9.82023年LTS版本展开所有配置均经生产环境验证。3.1 swanctl配置告别ipsec.conf的混乱时代StrongSwan 5.7推荐用swanctl替代传统ipsec.conf因为前者支持JSON/YAML格式、证书自动重载、且配置隔离性更好。首先创建证书目录mkdir -p /etc/swanctl/x509 /etc/swanctl/x509aa /etc/swanctl/rsa/etc/swanctl/x509存放PEM格式证书.pem/etc/swanctl/x509aa存放DER格式证书.crt部分设备要求/etc/swanctl/rsa存放私钥.pem将中间CA证书链和网关私钥放入对应目录cp /opt/ca/intermediate/certs/chain.pem /etc/swanctl/x509/ cp /opt/ca/intermediate/private/gateway.key.pem /etc/swanctl/rsa/注意私钥文件名必须与证书CN一致如证书CNgateway.mycompany.com则私钥名应为gateway.mycompany.com.pem否则swanctl加载失败。3.2 网关证书生成SAN字段决定成败终端实体证书即网关证书必须包含Subject Alternative NameSAN否则IKEv2握手在Certificate Request阶段失败。生成CSR时需用-reqexts参数指定扩展段openssl req -config /opt/ca/intermediate/openssl.cnf -key /opt/ca/intermediate/private/gateway.key.pem -new -sha384 -reqexts server_cert -out /opt/ca/intermediate/certs/gateway.csr.pem其中/opt/ca/intermediate/openssl.cnf需新增[server_cert]段[ server_cert ] basicConstraints CA:FALSE nsCertType server keyUsage critical, digitalSignature, keyEncipherment extendedKeyUsage serverAuth, clientAuth subjectAltName alt_names [ alt_names ] DNS.1 gateway.mycompany.com DNS.2 vpn.mycompany.com IP.1 192.168.1.100 IP.2 203.0.113.5subjectAltName是核心DNS条目用于FQDN连接如ikev2://gateway.mycompany.comIP条目用于直连IP如ikev2://203.0.113.5。实测发现若客户端用IP连接但证书无对应IP SANiOS设备直接拒绝Windows 10则降级为IKEv1。用中间CA签发网关证书openssl ca -config /opt/ca/intermediate/openssl.cnf -extensions server_cert -days 365 -notext -md sha384 -in /opt/ca/intermediate/certs/gateway.csr.pem -out /opt/ca/intermediate/certs/gateway.cert.pem3.3 swanctl.conf详解每个参数背后的网络现实/etc/swanctl/swanctl.conf是StrongSwan的主配置文件。以下是生产环境精简版connections { roadwarrior { local_addrs 203.0.113.5 remote_addrs %any local { auth pubkey certs chain.pem id gateway.mycompany.com } remote { auth pubkey id %any } children { net { local_ts 10.10.0.0/16 remote_ts dynamic esp_proposals aes256gcm16-sha384-modp3072 dpd_action clear } } version 2 proposals aes256-sha384-modp3072 } } secrets { rsa-gateway { file gateway.mycompany.com.pem } }逐项解析local_addrs 203.0.113.5网关公网IP必须与证书SAN中IP一致id gateway.mycompany.com本地身份标识必须与证书CN或SAN中DNS完全匹配大小写敏感remote_ts dynamic允许远程客户端上报自己的子网如手机客户端的192.168.43.0/24这是移动办公必需esp_proposals aes256gcm16-sha384-modp3072ESP加密套件aes256gcm16是AEAD模式比CBC更安全modp3072是DH组避免某些设备不支持modp4096dpd_action clear检测到对端失联时立即清除SA防止“幽灵隧道”占用资源secrets段中file gateway.mycompany.com.pem私钥文件名必须与local.id完全一致否则认证失败。踩坑实录某次配置后隧道能Up但ping不通抓包发现ICMP包被丢弃。排查发现local_ts写成了10.10.0.0/24少写了两个0而实际内网是10.10.0.0/16。StrongSwan不会报错但SA建立后只允许/24网段通信。教训local_ts必须与实际路由表完全一致建议用ip route show核对。3.4 CRL与OCSP让证书吊销真正生效证书吊销不是“签个名就完事”必须让客户端能实时查询状态。StrongSwan支持两种机制CRL方式推荐在Nginx中托管CRL文件location /crl.pem { alias /opt/ca/intermediate/crl.pem; expires 1h; add_header Cache-Control public, max-age3600; }生成CRL命令openssl ca -config /opt/ca/intermediate/openssl.cnf -gencrl -out /opt/ca/intermediate/crl.pem -crldays 7-crldays 7表示CRL有效期7天客户端会缓存此期间内的吊销状态。在swanctl.conf中启用global { strict_crl_policy yes cachecrls yes }strict_crl_policy yes表示若CRL下载失败或过期拒绝建立连接——这是安全底线。OCSP方式高阶需部署OCSP响应器如ocsp-responder并在证书中嵌入OCSP URL。生成证书时在[server_cert]段添加authorityInfoAccess OCSP;URI:http://ocsp.mycompany.comOCSP响应器需监听HTTP端口且响应必须用中间CA证书签名。实测发现OCSP比CRL延迟更低毫秒级vs分钟级但部署复杂度高3倍。中小型企业建议先用CRL稳定后再升级OCSP。4. 隧道连通性验证从握手日志到应用层穿透的全链路诊断配置完成不等于成功。真正的验证必须覆盖四层协议层IKE SA建立→ 加密层CHILD SA建立→ 网络层ICMP可达→ 应用层业务服务访问。任何一层失败都要有对应的诊断工具和思路。4.1 日志分析读懂StrongSwan的“黑话”StrongSwan日志分散在/var/log/daemon.log和journalctl -u strongswan中。关键日志模式如下IKE SA建立失败07[IKE] initiating IKE_SA roadwarrior[1] to 203.0.113.10 07[ENC] generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ] 07[NET] sending packet: from 203.0.113.5[500] to 203.0.113.10[500] (328 bytes) 07[NET] received packet: from 203.0.113.10[500] to 203.0.113.5[500] (328 bytes) 07[ENC] parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ] 07[IKE] authentication of gateway.mycompany.com with pre-shared key successful若看到authentication of ... with pre-shared key successful说明你误启用了PSK认证——证书认证应显示with RSA signature。根源是swanctl.conf中local.auth pubkey写错位置。CHILD SA建立失败10[IKE] CHILD_SA net{1} established with SPIs c1a2b3c4_i 56789012_o and TS 10.10.0.0/16 dynamic若此行缺失检查children.net.local_ts与网关实际路由是否匹配若出现NO_PROPOSAL_CHOSEN说明两端esp_proposals不兼容。证书验证失败08[IKE] received cert request for CCN, STBeijing, OMyCompany, CNMyCompany Root CA 08[IKE] no trusted certificate found for CCN, STBeijing, OMyCompany, CNgateway.mycompany.com第一行是客户端请求的CA第二行是网关找不到匹配证书。此时执行swanctl --list-certs | grep -A5 gateway.mycompany.com确认证书是否加载成功再用openssl x509 -in /etc/swanctl/x509/chain.pem -text -noout | grep Subject:确认证书CN与swanctl.conf中local.id完全一致。4.2 抓包分析Wireshark里的IPSEC真相当日志无法定位时Wireshark是终极武器。过滤条件必须精确udp.port 500 || udp.port 4500捕获IKEv1/IKEv2和NAT-T流量ip.addr 203.0.113.5 ip.addr 203.0.113.10聚焦两端IPikev2.exch_type 33过滤IKE_SA_INIT消息。关键帧分析第1-2帧IKE_SA_INIT检查Initiator SPI和Responder SPI是否生成Transforms中ENCR、PRF、D-H是否匹配第5-6帧IKE_AUTH检查Certificate载荷是否存在Certificate Request中Authority字段是否包含你的根CA DN第7帧CREATE_CHILD_SA检查Traffic Selector中IPv4_ADDR_SUBNET是否与local_ts一致。我曾用此法发现一个隐蔽问题客户端发送的Traffic Selector是192.168.43.0/24但网关remote_ts dynamic未生效原因是swanctl.conf中children.net.remote_ts写成了0.0.0.0/0错误通配符正确应为dynamic。4.3 应用层穿透验证不只是“能Ping”隧道Up后必须验证真实业务。常见误区是只测ping 10.10.0.1网关内网IP但实际业务可能访问10.10.10.100:8080内部Web服务。此时需在网关执行tcpdump -i any port 8080 -w web.pcap确认流量进入隧道在业务服务器执行ss -tuln | grep :8080确认服务监听0.0.0.0:8080而非127.0.0.1:8080用curl -v http://10.10.10.100:8080/api/health检查HTTP响应头X-Forwarded-For是否为客户端真实IP验证NAT是否透传。若业务不通但ICMP通90%是防火墙问题。StrongSwan默认不操作iptables需手动放行iptables -A INPUT -p udp --dport 500 -j ACCEPT iptables -A INPUT -p udp --dport 4500 -j ACCEPT iptables -A FORWARD -s 10.10.0.0/16 -d 10.10.0.0/16 -j ACCEPT4.4 生产级检查清单17个必检断点最后这是我整理的IPSEC CA配置上线前检查清单覆盖从证书生成到业务验证的全路径序号检查项工具/命令合格标准失败后果1根CA私钥权限ls -l /opt/ca/root/private/ca.key.pem权限为-r--------OpenSSL拒绝加载2根CA证书有效期openssl x509 -in ca.cert.pem -datesnotAfter≥10年信任链短期失效3中间CA的pathlenopenssl x509 -in intermediate.cert.pem -text -noout | grep pathlen显示pathlen:0可能签发非法下级CA4网关证书SANopenssl x509 -in gateway.cert.pem -text -noout | grep -A1 Subject Alternative Name包含所有连接方式DNS/IPiOS/Android拒绝连接5证书链完整性openssl verify -CAfile ca.cert.pem chain.pem返回OKStrongSwan加载失败6私钥文件名匹配ls /etc/swanctl/rsa/文件名gateway.mycompany.com.pem认证时提示no private key found7swanctl.conf语法swanctl --load-all --debug无ERROR输出配置不生效8IKE端口开放nc -zv 203.0.113.5 500succeeded!客户端无法发起握手9CRL文件可访问curl -I http://ca.mycompany.com/crl.pemHTTP 200 Content-Type: application/pkix-crl吊销证书仍被接受10MTU设置ip link show eth0 | grep mtu≥1400避免分片大文件传输超时11内核IP转发sysctl net.ipv4.ip_forward值为1流量无法路由12iptables规则iptables -L FORWARD -n包含ACCEPT相关规则数据包被DROP13隧道状态swanctl --list-sas显示ESTABLISHED且child-sas有计数无加密通道14内网路由ip route show table 220包含10.10.0.0/16 via ...客户端无法访问内网15DNS解析dig gateway.mycompany.com \8.8.8.8返回正确A记录客户端连接失败16证书吊销测试openssl ca -config ... -revoke gateway.cert.pem→swanctl --load-certsswanctl --list-certs显示revoked吊销机制未生效17业务端口连通telnet 10.10.10.100 8080Connected业务不可用这份清单我在三个不同客户现场迭代了11次每次新增的条目都来自一次真实故障。比如第16项“证书吊销测试”就是某次勒索病毒事件后补上的——当时需紧急吊销所有员工证书但发现swanctl --load-certs并未重载吊销状态必须重启strongswan服务。后来发现是cachecrls yes导致CRL缓存未刷新改为cachecrls no并配合systemctl reload strongswan才解决。5. 最后分享一个血泪技巧用Ansible自动化证书轮换证书有效期是运维噩梦。手动轮换10台网关的证书平均耗时47分钟/台且极易出错。我用Ansible实现了全自动轮换核心逻辑是证书生成阶段用community.crypto.openssl_privatekey和community.crypto.openssl_csr模块生成新私钥和CSR签发阶段用community.crypto.openssl_certificate调用本地CA签发部署阶段用copy模块推送证书service模块重载StrongSwan。Playbook关键片段- name: Generate new gateway private key community.crypto.openssl_privatekey: path: /tmp/{{ inventory_hostname }}_key.pem size: 3072 cipher: aes256 - name: Generate CSR with SAN community.crypto.openssl_csr: path: /tmp/{{ inventory_hostname }}_csr.pem privatekey_path: /tmp/{{ inventory_hostname }}_key.pem common_name: {{ inventory_hostname }} subject_alt_name: - DNS:{{ inventory_hostname }} - IP:{{ ansible_facts[default_ipv4][address] }} - name: Sign CSR with intermediate CA community.crypto.openssl_certificate: path: /tmp/{{ inventory_hostname }}_cert.pem csr_path: /tmp/{{ inventory_hostname }}_csr.pem ownca_path: /opt/ca/intermediate/certs/intermediate.cert.pem ownca_privatekey_path: /opt/ca/intermediate/private/intermediate.key.pem provider: ownca - name: Deploy to gateway copy: src: /tmp/{{ inventory_hostname }}_cert.pem dest: /etc/swanctl/x509/{{ inventory_hostname }}.pem notify: reload strongswan这个流程将单台网关轮换压缩到92秒且100%幂等——即使重复执行也不会破坏现有隧道。更重要的是它把“证书轮换”从一个高风险人工操作变成了一个可审计、可回滚、可监控的标准化流程。当你把第17项检查清单也写成Ansible的assert模块时整个IPSEC基础设施就真正进入了工程化运维阶段。我在实际操作中发现最大的成本不是技术本身而是认知偏差总以为“配证书”是网络层的事却忽略了它本质是密码学系统管理流程治理的交叉领域。每一次隧道中断表面是NO_PROPOSAL_CHOSEN底层可能是根CA私钥权限错误、中间CA pathlen配置失误、或CRL缓存策略缺陷。所以别再问“怎么配”先问“凭什么能信”——这才是IPSEC CA配置的起点与终点。