今天把以前的用openssl寫的SSL通信的程序拿出來溫故了一番,準(zhǔn)備以后用到??墒窃趯?shí)現(xiàn)對(duì)客戶端進(jìn)行驗(yàn)證的時(shí)候,死活都讀取不到客戶端的證書,弄了半天才找到錯(cuò)誤,原來是沒有加這句話SSL_CTX_load_verify_locations(ctx, "ca.pem", NULL);看來以后編程序是要一步一步來,按照規(guī)范。
所以要實(shí)現(xiàn)客戶端認(rèn)證,在服務(wù)器端加上如下: SSL_CTX_load_verify_locations(ctx, RSA_SERVER_CA_CERT/*客戶證書的根CA*/, NULL); SSL_CTX_set_verify(ctx,SSL_VERIFY_PEER,NULL); SSL_CTX_set_verify_depth(ctx,1);
聯(lián)系客服