OpenSSL tips

Posted on 2019-11-07 20:03  Volcano3511  阅读(135)  评论(0编辑  收藏  举报

TOC

命令行生成密钥

openssl genrsa -out private.key 1024

openssl rsa -in private.key -pubout -out public.key

openssl生成证书,公私钥的方法

  1. 创建私钥:
    openssl genrsa -out private.pem 1024 //密钥长度,1024觉得不够安全的话可以用2048,但是代价也相应增大
  2. 创建公钥:
    //为方便测试,还是需要公钥的。正常情况下,拿到证书就可以了
    openssl rsa -in private.pem -pubout -out public.pem
  3. 创建证书请求:
    //使用私钥生成一个证书请求,证书请求提交到CA认证中心后会得到一份证书,当然,测试用时,就不必提交CA认证中心(收费)
    openssl req -new -out cert.csr -key private.pem
  4. 自签署根证书:
    //自签署,就是不通过CA认证中心自行进行证书签名,这里用是x509
    openssl x509 -req -in cert.csr -out public.der -outform der -signkey private.pem -days 3650 //10年有效

BIO

BIO是在底层覆盖了许多类型I/O接口细节的一种应用接口,如果你在程序中使用BIO,那么就可以和SSL、非加密的网络以及文件IO进行透明的连接。

printf函数十六进制格式化输出并且2字节对齐

使用

printf("%02hhx",encrypted[i]);

OpenSSL中读取PEM文件的问题

    BIO *key = NULL; 
        RSA *r = NULL; 
        key = BIO_new(BIO_s_file()); 
        BIO_read_filename(key, "c:\\private.key"); 
        r = PEM_read_bio_RSAPrivateKey(key, NULL, NULL, NULL); 
        BIO_free_all(key);
  BIO *key = NULL; 
        RSA *r = NULL; 
        key = BIO_new(BIO_s_file()); 
        BIO_read_filename(key, "c:\\public.key"); 
        r = PEM_read_bio_RSAPublicKey(key, NULL, NULL, NULL); 
        BIO_free_all(key);

、//PEM_read_bio_RSAPublicKey如果不成功,可以试试这个歌
 r = PEM_read_bio_RSA_PUBKEY(key, NULL,NULL,NULL); 
 openssl_to_keys(r, 1024, priv, pub);

#