标签: openssl

如何使用OpenSSL提取公钥?

以下命令生成一个包含公钥和私钥的文件:

openssl genrsa -des3 -out privkey.pem 2048
Run Code Online (Sandbox Code Playgroud)

来源:这里

使用OpenSSL,私钥也包含公钥信息,因此不需要单独生成公钥

我们如何从privkey.pem文件中提取公钥?

谢谢.

openssl pki public-key-encryption

112
推荐指数
3
解决办法
15万
查看次数

使用openssl verify验证证书链

我正在使用以下组件构建自己的证书链:
Root Certificate - Intermediate Certificate - User Certificate
Root Cert是自签名证书,中间证书由Root和User by Intermediate签名.

现在我想验证用户证书是否具有根证书的锚点.

随着
openssl verify -verbose -CAfile RootCert.pem Intermediate.pem
确认就可以了.在下一步中,我验证用户证书,
openssl verify -verbose -CAfile Intermediate.pem UserCert.pem
验证在0深度查找时显示错误20:无法获得本地颁发者证书

怎么了?

openssl certificate

111
推荐指数
6
解决办法
30万
查看次数

为localhost创建受信任的自签名SSL证书(用于Express/Node)

尝试遵循有关创建自签名证书以与localhost一起使用的各种说明,大多数说明似乎适用于IIS,但我正在尝试使用Nodejs/Express.它们都没有正常工作,因为在安装证书时,它不受信任.这是我尝试过的失败:

有人可以提供可以做到这一点的工作流程吗? 我可以安装一个证书,但我无法让chrome(v32)或IE(v10)中的证书受到信任.

编辑:在评论中建议问题是没有受信任的cert-root.我通过IE安装了证书,但它仍然不受信任.

openssl localhost ssl-certificate node.js express

110
推荐指数
8
解决办法
12万
查看次数

如何使用OpenSSL生成具有SubjectAltName的自签名证书?

我正在尝试使用带有SubjectAltName的OpenSSL生成一个自签名证书.虽然我正在为证书生成csr,但我猜我必须使用OpenSSL x509的v3扩展.我在用 :

openssl req -new -x509 -v3 -key private.key -out certificate.pem -days 730
Run Code Online (Sandbox Code Playgroud)

有人可以用确切的语法帮助我吗?

ssl openssl ssl-certificate x509certificate x509

107
推荐指数
1
解决办法
14万
查看次数

Git for Windows:SSL 证书问题:证书已过期

我知道Let\'s Encrypt所做的更改可能会影响旧客户端,因为根证书会过期。请参阅DST 根 CA X3 到期(2021 年 9 月)

\n

但是,我认为这不会影响我,因为我的开发机器是最新的。

\n

但从今天开始,我在执行以下操作时收到消息git pull

\n
fatal: unable to access \'https://git.company.tld/project.git/\': SSL certificate problem: certificate has expired\n
Run Code Online (Sandbox Code Playgroud)\n

我刚刚下载了最新的 Windows 版 Git (2.33.0),并确认内置的OpenSSL是最新的 ( OpenSSL 1.1.1k 25 Mar 2021),这应该很好。

\n

Let\xe2\x80\x99s 加密证书的 OpenSSL 客户端兼容性更改

\n

但错误似乎仍然存在。

\n
openssl s_client -showcerts -connect git.company.tld:443\n
Run Code Online (Sandbox Code Playgroud)\n

节目

\n
openssl s_client -showcerts -connect git.company.tld:443\n
Run Code Online (Sandbox Code Playgroud)\n

问题不在于颁发的证书本身,它没有过期并且被 Chrome(Windows证书存储)和 Firefox 接受。

\n

git openssl certificate lets-encrypt

103
推荐指数
5
解决办法
5万
查看次数

使用openssl将pfx转换为pem

如何使用OpenSSL从PFX文件生成.pem CA证书客户端证书.

openssl pfx pem

100
推荐指数
4
解决办法
26万
查看次数

从文件加载RSA公钥

我已经生成了一个私钥:

openssl genrsa [-out file] –des3
Run Code Online (Sandbox Code Playgroud)

在此之后,我生成了一个公钥:

openssl rsa –pubout -in private.key [-out file]
Run Code Online (Sandbox Code Playgroud)

我想用我的私钥签署一些消息,并使用我的公钥验证其他一些消息,使用如下代码:

public String sign(String message) throws SignatureException{
    try {
        Signature sign = Signature.getInstance("SHA1withRSA");
        sign.initSign(privateKey);
        sign.update(message.getBytes("UTF-8"));
        return new String(Base64.encodeBase64(sign.sign()),"UTF-8");
    } catch (Exception ex) {
        throw new SignatureException(ex);
    }
}

public boolean verify(String message, String signature) throws SignatureException{
    try {
        Signature sign = Signature.getInstance("SHA1withRSA");
        sign.initVerify(publicKey);
        sign.update(message.getBytes("UTF-8"));
        return sign.verify(Base64.decodeBase64(signature.getBytes("UTF-8")));
    } catch (Exception ex) {
        throw new SignatureException(ex);
    }
}
Run Code Online (Sandbox Code Playgroud)

我找到了将我的私钥转换为PKCS8格式并加载它的解决方案.它适用于这样的一些代码:

public PrivateKey getPrivateKey(String filename) throws Exception {

    File f …
Run Code Online (Sandbox Code Playgroud)

java openssl rsa

98
推荐指数
3
解决办法
15万
查看次数

如何使用命令行中的密码生成openSSL密钥?

首先 - 如果我不给出密码,会发生什么?是否使用了某种伪随机短语?我只是在寻找"足够好"的东西来阻止随意的黑客入侵.

第二 - 如何从命令行生成密钥对,在命令行上提供密码?


我终于使用这些命令工作,使用exec()通常认为使用不安全,最好将PassPhrase放在文件中.我可以接受这种风险,因为我确信PHP只会在我的PC上执行(它运行Windows并且没有PS命令).

openssl genrsa -aes128 -passout pass:foobar -out privkey.pem 2048
openssl rsa -in privkey.pem -passin pass:foobar -pubout -out privkey.pub
Run Code Online (Sandbox Code Playgroud)

很多人都要感谢@caf,没有他们,这是不可能的.

只有一个遗憾 - 无论我有多少谷歌,似乎没有人可以openssl_pkey_new()在Windows上使用Xampp(这是生成密钥对的正确方法)

openssl

94
推荐指数
2
解决办法
18万
查看次数

OpenSSL:PEM例程:PEM_read_bio:无起始行:pem_lib.c:703:期望:TRUSTED CERTIFICATE

我需要一个用于在Stunnel的CApath目录中发布的文件的哈希名称.我在这个目录中有一些证书,他们运作良好.我还有一个服务器sert和服务器密钥:

cert = c:\Program Files (x86)\stunnel\server_cert.pem 
key = c:\Program> Files (x86)\stunnel\private\server_key.pem
Run Code Online (Sandbox Code Playgroud)

当我尝试计算新证书的哈希时,我收到一个错误:

/ etc/pki/tls/misc/c_hash cert.pem

无法加载证书140603809879880:错误:0906D06C:PEM例程:PEM_read_bio:无起始行:pem_lib.c:703:期望:TRUSTED CERTIFICATE

据我所知,我必须签署我的证书,但我不明白我该怎么做.请提供解决方案.

PS:

消息

无法加载证书140603809879880:错误:0906D06C:PEM例程:PEM_read_bio:无起始行:pem_lib.c:703:期望:TRUSTED CERTIFICATE:

当我为cert.pem制作c_hash时发布这不是server_cert.pem,这是Root_CA,它的内容类似于

----- BEGIN CERTIFICATE -----
... 6UXBNSDVg5rSx60 = ..

-----结束证书-----

当我写作

openssl x509 -noout -text -in cert.pem

在控制台面板中,我看到这个信息:

/etc/pki/tls/misc/c_hash cert.pem

unable to load certificate 140603809879880:error:0906D06C:PEM
routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
Run Code Online (Sandbox Code Playgroud)

windows openssl certificate trusted

94
推荐指数
7
解决办法
35万
查看次数

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