我正在尝试为用户创建具有 x.509 证书认证的 IPSec VPN 连接。
接下来是为了让事情顺利进行而进行的测试,并不是一个安全的实现。当我让它工作时,我会从受信任的来源获得证书,同时我使用的是自签名证书。
我使用的是 Windows 10 20H2
1-我使用 XCA 创建根证书。
2-我为我的第一个 vpn 用户创建证书签名请求。
3- 我使用 XCA 签署请求
4-我以 PEM 格式从 XCA 导出请求
5- 我安装 OpenSSL,并将环境变量 OPENSSL_CONF 设置为安装文件夹中的 openssl.cfg。我使用了https://slproweb.com/products/Win32OpenSSL.html(64 位)适用于 W10 上的 openSSL
6-乐趣开始了。
据我了解,我必须使用 snap-in 证书添加向导通过命令行中的 mmc 在 Windows 机器中添加证书。它不接受 pem 格式,它需要 crt。
然后我参考 OpenSSL 进行格式转换
当我输入 x509 -in CERT.pem -out CERTII.crt 时
我收到以下错误:
Can't open CERT.pem for reading, No such file or directory
15732:error:02001002:system library:fopen:No such file or directory:crypto\bio\bss_file.c:69:fopen('CERT.pem','r')
15732:error:2006D080:BIO routines:BIO_new_file:no such file:crypto\bio\bss_file.c:76:
unable to load certificate
error in x509
我搜索了相当多,但找不到这个错误的确切含义,我正在考虑逐个拔出我的头发作为一种可行的替代方案。
编辑 2020-12-11 1600
重命名为 .crt 并添加到本地证书出现了错误:
file type is not recognizable. Select another file.
此外,即使在具有管理员权限的 openssl cli 中指定完整路径,仍然会出现错误。
例如,如果我将证书复制到 OpenSSL 文件夹中,并尝试执行命令“openssl x509 -in CERT.pem -out CERT.crt”,则会显示以下错误:
"unable to load certificate
15252:error:0909006C:PEM routines:get_name:no start line:crypto\pem\pem_lib.c:745:Expecting: TRUSTED CERTIFICATE
error in x509"
编辑 2020-12-10 1610 - 证书片段
-----BEGIN CERTIFICATE REQUEST-----
MIIDGjCCAgICAQAwgaExCzAJBgNVBAYTAkNBMQ8wDQYDVQQIEwZRVUVCRUMxEjAQ
....
hfz1ew0RTMxZv2hMlN/wn5Y0EZKpRr5jMrgZprG7
-----END CERTIFICATE REQUEST-----
我猜测它不应该被列为请求,而应该被列为签名的证书?
编辑于 2020-12-10 1626 EST
UnNamed 解决了我的问题。向他们致以诚挚的谢意。
在 XCA 中,当您签署请求时,并不会立即清楚它是否需要从不同的选项卡导出证书。
在用于签署用户证书的根证书下,有一个下拉列表,其中包含已签名的用户证书。在其中创建证书的自定义视图后,我能够将其导出并添加到 mmc,没有任何问题。
从这里继续设置 VPN。
答案1
证书需要与位于同一目录中,openssl.exe
或者指定完整/绝对路径,如C:\temp\cert.pem
。
crt 文件扩展名适用于 Windows,内容为 base64 PEM 格式。无需“转换”内容。只需将文件扩展名从 重命名为.pem
即可.crt
。