首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装自定义证书后出现客户端错误

安装自定义证书后出现客户端错误
EN

Server Fault用户
提问于 2022-08-20 18:11:51
回答 1查看 220关注 0票数 1

我遵循(我相信)所有正确的步骤,在我的ASA防火墙上安装了一个可信的证书:

  • 将公司根权限作为CA安装到ASA中
  • 为ASA的主机名颁发证书
  • 将证书作为身份证书安装到ASA中。
  • 将证书应用于外部接口

但是,在试图连接时,我继续在浏览器中获取此错误:

安全连接失败在连接到asa.xxx.internal期间发生错误。SSL无法从对等方的证书中提取公钥。错误代码: SSL_ERROR_EXTRACT_PUBLIC_KEY_FAILURE

我已经用show crypto certificates验证了证书已被正确导入,并显示为与导入的CA相关联。

我在这里做的唯一不太熟悉的事情是使用EC证书,而不是RSA,但这似乎不应该有任何关系。

show run的相关部分:

代码语言:javascript
复制
hostname asa
domain-name xxx.internal
http server enable
crypto ca trustpoint ASDM_TrustPoint0
 enrollment terminal
 validation-usage ipsec-client ssl-client ssl-server
 crl configure
crypto ca trustpoint ASDM_TrustPoint1
 keypair ASDM_TrustPoint1
 no validation-usage
 crl configure
crypto ca trustpool policy
 auto-import
crypto ca certificate chain ASDM_TrustPoint0
 certificate ca 4e7bf88d72c08d4efa48d3ec658e5a3281b2c6aa
    3082028e 30820233 a0030201 0202144e 7bf88d72 b08d4efa 48d3ec65 8e5a3281 
    ...
 quit
crypto ca certificate chain ASDM_TrustPoint1
 certificate c47d26f97ee247a9
    308203d8 3082037e a0030201 02020900 c47d26f9 7ee247a7 300a0608 2a8648ce 
    ...
  quit
 certificate ca 4e7bf88d72c08d4efa48d3ec658e5a3281b2c6aa
    3082028e 30820233 a0030201 0202144e 7bf88d72 b08d4efa 48d3ec65 8e5a3281 
  quit
ssl server-version tlsv1.2
ssl trust-point ASDM_TrustPoint1 outside
EN

回答 1

Server Fault用户

回答已采纳

发布于 2022-08-21 00:06:28

我终于想出了(度过一个星期六的有趣方式)。

我与openssl s_client连接以查看发生了什么,并从输出中提取了一条错误消息:

验证错误:证书公钥具有显式ECC参数。

所以,我不知道如何解决这个问题。我正在生成密钥并在信息安全SE ( Information )上按这个答案颁发证书。默认值应该是命名曲线,而不是显式参数,但是即使我设置了值,我仍然得到相同的结果。

稍后我会弄清楚这一点,但与此同时,我不得不在ASA上生成一个键,并将其导出以完成证书生成。这是有点烦躁,但它起了作用:

代码语言:javascript
复制
crypto key generate ecdsa label my_private_key elliptic-curve 384
crypto ca trustpoint throwaway
  keypair mykey
  enrollment self
  exit
crypto ca enroll throwaway noconfirm
crypto ca export throwaway pkcs12 foo
no crypto ca trustpoint throwaway noconfirm

此时,我在终端上有一个base64 PKCS #12包。我将base64数据(不包括开始行和结束行)复制到服务器上,然后执行此操作以获得密钥:

代码语言:javascript
复制
echo "MIIEDwIBAzCCA8UGC..." | base64 -d | \
  openssl pkcs12 -nocerts -nodes -password pass:foo > my.key

成功,我有钥匙!我使用它生成证书,并使用前面的键区创建了一个新的信任点:

代码语言:javascript
复制
crypto ca trustpoint my_tls_certificate
  enrollment terminal
  no ca-check
  subject-name CN=asa.xxx.internal
  keypair my_private_key
  exit
crypto ca enroll my_tls_certificate noconfirm
crypto ca import my_tls_certificate certificate

在这一点上,我提供了证书文件(同样没有开始行和结束行),并在一行上提供了“退出”。

最后,我能够使用ssl trust-point my_tls_certificate outside启用证书并成功连接。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1108682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档