密信浏览器添加信任根、国密Key双向认证(测试)

添加信任根

1. 首先在密信浏览器安装路径中手动创建目录SM2\trust_chain,如

  C:\Users\[用户名]\AppData\Local\MeSinceBrowser\User Data\SM2\trust_chain\

2. 然后,在文件夹中添加需要信任的证书链(需包含根证书和中级证书),其中证书命名规则:证书使用者密钥标识符.cer。如eaceddd4a5e7b67fee1d2796cd75dc2525724597.cer

3. 添加完成后,重启浏览器,就可以看到证书受信任了。

国密Key双向认证

读取key的方式和360浏览器一致:

浏览器调用标准SKF接口,且需要在注册表中添加相应注册表项。浏览器支持下面两种注册路径:

    • 32位系统:
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\SKF\厂商名
    • 64位系统:
    • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Cryptography\
      Defaults\SKF\厂商名
    • Name:类型:REG_SZ(自定义名称)
    • Path:类型:REG_SZ(SKF驱动dll路径)
    • 32位系统:
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider\厂商名
    • 64位系统:
    • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Cryptography\
      Defaults\Provider\厂商名
    • SKF\厂商名
    • Name:类型:REG_SZ(自定义名称)
    • SKFImagePath:类型:REG_SZ(SKF驱动dll路径)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
如果你想在 libcurl 中使用 gmSSL 进行双向认证,可以按照以下步骤进行操作: 1. 生成服务器证书和私钥。可以使用 OpenSSL 工具生成证书和私钥。例如: ``` openssl req -newkey rsa:2048 -nodes -keyout server.key -out server.csr openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt ``` 2. 生成客户端证书和私钥。可以使用 OpenSSL 工具生成证书和私钥。例如: ``` openssl req -newkey rsa:2048 -nodes -keyout client.key -out client.csr openssl x509 -req -days 365 -in client.csr -signkey client.key -out client.crt ``` 3. 将服务器证书和私钥放到服务器端,将客户端证书和私钥放到客户端。 4. 在服务器端,启动一个 HTTPS 服务器,并加载服务器证书和私钥。可以使用 OpenSSL 或其他 HTTP 服务器软件来实现。在这里,我们假设你已经启动了一个名为 `example.com` 的 HTTPS 服务器,并将服务器证书和私钥保存在 `server.crt` 和 `server.key` 文件中。 5. 在客户端,使用 libcurl 发起 HTTPS 请求,并加载客户端证书和私钥。可以使用以下代码来实现: ``` #include <curl/curl.h> #include <openssl/gmssl.h> int main() { CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, "https://example.com"); curl_easy_setopt(curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); curl_easy_setopt(curl, CURLOPT_SSL_CIPHER_LIST, "ECDHE-ECDSA-AES128-GCM-SHA256"); curl_easy_setopt(curl, CURLOPT_CAINFO, "ca-bundle.crt"); curl_easy_setopt(curl, CURLOPT_SSLCERT, "client.crt"); curl_easy_setopt(curl, CURLOPT_SSLKEY, "client.key"); res = curl_easy_perform(curl); curl_easy_cleanup(curl); } curl_global_cleanup(); return 0; } ``` 在上面的示例代码中,我们使用了 `CURLOPT_SSLCERT` 和 `CURLOPT_SSLKEY` 选项来加载客户端证书和私钥。需要注意的是,客户端证书需要是 PEM 格式,并且需要包含完整的证书链。 同时,我们还设置了 `CURLOPT_CAINFO` 选项来加载证书。如果证书不在系统的默认位置,需要将其保存为 PEM 格式,并指定其路径。 需要注意的是,双向认证需要在服务器端和客户端都进行配置,才能实现双向认证的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值