小编cur*_*one的帖子

SSL握手失败 - 一个verisign链证书 - 包含两个CA签名证书和一个自签名证书

我遇到了问题并尝试调试它.我们购买了Verisign证书.当我们使用时:

openssl> s_client -connect myweb.com:443 -showcerts
Run Code Online (Sandbox Code Playgroud)

SSL握手永远不会完成,最后我们会看到错误:

Verify return code: 19 (self signed certificate in certificate chain)
Run Code Online (Sandbox Code Playgroud)

它显示3个---BEGIN/END CERTIFICATE---标签.链中的两个证书是Verisign签署的,但其中一个是自签名的.

  1. 如果有人可以解释这个自签名证书如何出现在CA签名证书中?

  2. 这个错误是否19 (self signed certificate in certificate chain)良性?如果没有,可能是什么原因造成的?

  3. 客户端在受信任存储中具有CA证书,但自签名证书没有任何内容.你认为这可能导致问题吗?如果是,我该怎么做:

    1. 如何从链证书中删除自签名证书,只留下链中的2个CA签名证书?
    2. 在客户端信任存储上添加此自签名证书?

ssl openssl handshake

40
推荐指数
3
解决办法
12万
查看次数

我的连接函数mystrcat(char*,char*,char*)有什么问题?

我最近接受采访,要求写mystrcat(*s1, *s2, *s3)在那里s1,并s2在源字符串和串联的结果给出s3.我被告知,不要担心内存分配s3和假设s1,s2并且不是空/无效字符串.所以我写了下面的蹩脚(粗)程序.我被告知有问题s3或出现问题s3.你能告诉它它是什么/可能是什么?

void mystrcat(char *s1, char *s2, char *s3)
{
    if (! (s1 || s2 || s3)) return; // one/more pointers are invalid

    // copy string s1 into s3
    while(*s1) {
      *s3 = *s1;
      s1++;
      s3++;
    }

    // concatenate string s2 into s3
    while(*s2) {
      *s3 = *s2;
      s2++;
      s3++;
    }

    *s3 = '\0';
}
Run Code Online (Sandbox Code Playgroud)

你能告诉我这里有什么问题吗?做什么会更专业呢?

c string

2
推荐指数
3
解决办法
1155
查看次数

标签 统计

c ×1

handshake ×1

openssl ×1

ssl ×1

string ×1