我正在为嵌入式Linux设备添加HTTPS支持.我尝试使用以下步骤生成自签名证书:
openssl req -new > cert.csr
openssl rsa -in privkey.pem -out key.pem
openssl x509 -in cert.csr -out cert.pem -req -signkey key.pem -days 1001
cat key.pem>>cert.pem
Run Code Online (Sandbox Code Playgroud)
这有效,但我在使用Google Chrome时遇到了一些错误:
这可能不是您要找的网站!
该网站的安全证书不受信任!
我错过了什么吗?这是构建自签名证书的正确方法吗?
在我的搜索过程中,我找到了几种签署SSL证书签名请求的方法:
使用x509模块:
openssl x509 -req -days 360 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
Run Code Online (Sandbox Code Playgroud)使用ca模块:
openssl ca -cert ca.crt -keyfile ca.key -in server.csr -out server.crt
Run Code Online (Sandbox Code Playgroud)注意:我不确定是否使用了正确的参数.如果我要使用它,请告知正确的用法.
应该使用哪种方式与证书颁发机构签署证书请求?一种方法比另一种方法更好(例如,一种方法被弃用)?
我在我的c ++应用程序中使用OpenSSL,问题是如果我使用exec("Open ssl command")
那么它将执行该特定命令,但实际上这个命令是repsonsive,我的意思是它进一步询问你"Are you sure you want to do this Y/N?"
我不知道如何迎合这种情况.我怎么能使用java或C++来运行响应的命令行,任何帮助将不胜感激.谢谢
我的问题是如何在Windows中使用OpenSSL创建公钥和私钥,以及如何将创建的公钥放在.crt文件中,将私有密钥放在.pcks8文件中,以便使用这两个密钥在Java中签署SAML断言
提前致谢
如何在C中实现它?
openssl req -new -key cert.key -out cert.csr
openssl x509 -req -in cert.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out cert.crt -days 5000
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Python 生成自签名SSL证书,因此它与平台无关.我的目标是*.pem格式.
我发现这个脚本生成证书,但没有信息如何自我签名.
我正在尝试创建一个数字证书,该证书使用 EC 密钥而不是来自 RSA 的密钥进行自签名,并遵循这些 SO link1和link2。我将link1中给出的RSA签名算法替换为EC
EC_KEY *ecc = NULL;
int eccgrp = OBJ_txt2nid("secp256k1");
ecc = EC_KEY_new_by_curve_name(eccgrp);
EC_KEY_set_asn1_flag(ecc, OPENSSL_EC_NAMED_CURVE);
if(!(EC_KEY_generate_key(ecc))) {
BIO_printf(out, "Error in generating key");
printf("Error 1\n");
}
if(!EVP_PKEY_assign_EC_KEY(pk, ecc)) {
BIO_printf(out, "Error assigning EC_KEY to EVP_PKEY");
printf("Error 2\n");
}
.
.
X509_set_pubkey(x,pk);
.
.
if (!X509_sign(x,pk,EVP_md5()))
goto err;
.
.
Run Code Online (Sandbox Code Playgroud)
其余代码与链接 1 中给出的相同。没有打印错误,但是当我尝试打印 x509 证书时出现段错误X509_print_fp(stdout,x509);。这样做的正确方法是什么?