使用OpenSSL在C语言中编写安全的客户端/服务器程序

3
我正在尝试使用OpenSSL用C语言编写一个安全的客户端/服务器程序。 我在http://www.rtfm.com/openssl-examples/找到了代码示例,但是我遇到了以下错误: 服务器:SSL读取问题 客户端:证书无法验证
我认为问题出在证书生成上,但我找不到它。 有任何想法吗?
谢谢
2个回答

5

我下载了示例并验证了错误:

"10 X509_V_ERR_CERT_HAS_EXPIRED:证书已过期"

使用以下命令:

openssl x509 -in client.pem -noout -text

我得到了以下输出:

Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number: 258 (0x102)
        Signature Algorithm: md5WithRSAEncryption
        Issuer: C=US, O=RTFM, Inc., OU=Widgets Division, CN=Test CA20010517
        Validity
            Not Before: May 17 16:11:36 2001 GMT
            Not After : Mar  6 16:11:36 2004 GMT
        Subject: C=US, O=RTFM, Inc., OU=Widgets Division, CN=client
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:87:35:64:a8:36:1e:a6:b1:4c:18:18:67:7b:4d:
                    84:03:b1:d4:86:d1:aa:3a:41:76:98:8e:4f:bb:f1:
                    9c:8c:41:e6:54:06:ed:9d:64:58:c6:e3:09:f3:90:
                    ac:2b:0f:8a:e9:fc:9e:4f:2d:1f:40:77:14:7b:da:
                    56:fd:01:ab:c4:38:a2:f6:50:31:c9:1a:cb:1c:66:
                    41:95:c3:f6:f3:65:bc:6b:28:5d:ab:bd:da:59:4a:
                    f2:8f:d4:e8:55:d4:c3:9d:b3:f5:93:a5:19:b5:81:
                    c9:95:4a:85:79:bc:b3:8c:a9:58:f3:8c:7a:31:43:
                    ff:b5:ce:98:f3:33:15:8b:d3
                Exponent: 65537 (0x10001)
    Signature Algorithm: md5WithRSAEncryption
        24:c9:85:14:79:b6:ff:00:ed:d7:39:fb:39:8a:47:54:3f:8b:
        ca:84:dc:ca:e7:9a:9f:cc:39:71:df:5f:e8:9f:27:fc:3e:b7:
        0a:1c:ff:27:78:12:7f:bb:a6:bf:a1:1a:c8:93:a1:f7:2d:d4:
        93:99:0d:6f:40:92:af:d9:1a:ed:7e:36:95:51:4f:b0:b0:e7:
        71:1d:33:0a:62:ec:0a:f0:64:0b:0b:21:40:6c:28:0e:d0:98:
        b4:db:77:08:d4:e5:2e:d6:95:9d:b8:7b:28:19:1f:2a:99:ac:
        ae:05:7b:0f:89:bb:39:45:92:4a:08:14:80:c2:7e:29:f2:cf:
        6e:26

不在之后:2004年3月6日16:11:36 GMT

表明该证书在2004年之前有效。

您需要创建一个新的证书来使用此示例。

您可以查看以下网站:

http://h71000.www7.hp.com/doc/83final/ba554_90007/ch04s02.html#cert2-fig

http://h71000.www7.hp.com/doc/83final/ba554_90007/ch04s03.html

http://blog.taragana.com/index.php/archive/openssl-how-to-create-self-signed-certificate/

http://sandbox.rulemaker.net/ngps/m2/howto.ca.html

http://novosial.org/openssl/ca


1

获取SSL_get_verify_result(ssl)返回的值,并将其与OpenSSL验证页面诊断部分中的结果列表进行比较。这将告诉您确切的错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接