我需要从*.cer文件中提取公钥(RSA).我想提取密钥并将其存储在一个.pem文件中,这样我就可以使用它的值来使用jsencrypt加密值.
以下命令将a转换.cer为.pem:
openssl x509 -inform der -in certificate.cer -out certificate.pem
Run Code Online (Sandbox Code Playgroud)
但它不会生成带有公钥的文件,而是生成带有文件内容的*.cer文件.
-----BEGIN CERTIFICATE-----
MIICPDCCAamgAwIBAg............
*lots of extra contents*
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
我应该使用什么命令来提取公钥并将其存储在.pem文件中?
从OpenSSL 1.0更改日志:
使PKCS#8成为私钥的默认写入格式,取代传统格式.此表单是标准化的,更安全,并且不包含隐式MD5依赖项.[史蒂夫汉森]
但是,我需要以前传统格式的私钥文件.是否可以将pem文件从PKCS#8转换为传统格式(使用OpenSSL.exe应用程序)?
非常感谢你!
我正在尝试使用C#读取.pem仅包含RSA公钥的文件.我无权访问私钥信息,我的应用程序也不需要它.文件myprivatekey.pem文件以.开头
-----BEGIN PUBLIC KEY-----
最后以
-----END PUBLIC KEY-----.
我目前的代码如下:
Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair keyPair;
using (var reader = File.OpenText(@"c:\keys\myprivatekey.pem"))
keyPair = (Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair)new Org.BouncyCastle.OpenSsl.PemReader(reader).ReadObject();
Run Code Online (Sandbox Code Playgroud)
但是代码会抛出一条InvalidCastException消息
无法将"Org.BouncyCastle.Crypto.Parameters.DsaPublicKeyParameters"类型的对象强制转换为"Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair".
PemReader当没有私钥信息时,如何使用Bouncy Castle 只读公钥?
我正在使用OpenSSL将我的"me.p12"转换为PEM.当我生成"me.p12"时,我为它设置了密码."me.p12"包含私钥和证书.
当我将其转换为PEM时,我运行命令:
openssl pkcs12 -in me.p12 -out me.pem
Run Code Online (Sandbox Code Playgroud)
然后,它问我Import Password:
Enter Import Password:
MAC verified OK
Run Code Online (Sandbox Code Playgroud)
我输入了我设置为"me.p12"的密码,验证确定无误.但接下来,它问我:
Enter PEM pass phrase:
Run Code Online (Sandbox Code Playgroud)
我不知道那是什么?当我生成"me.p12"时,我没有设置任何其他密码.那是什么?怎么弄清楚这个?
我有一个PEM文件提供给我,并被告知在建立一个连接到c ++服务器以进行某些API调用的SSL套接字时需要它.有谁知道如何在PEM文件中读取并连接?我也被给了parapharse密码.
使用openssl命令行可以以人类可读的模式提取.pem证书中包含的所有信息; 那是:
openssl x509 -noout -in <MyCertificate>.pem -text
Run Code Online (Sandbox Code Playgroud)
使用openssl API提取此信息的合适步骤是什么?
问候,
我有一个奇怪的问题.基本上,我需要这样做:
$handle = stream_context_create();
stream_context_set_option($handle , 'ssl', 'local_cert', '/tmp/cert');
Run Code Online (Sandbox Code Playgroud)
然而.证书不作为服务器中的文件保存.相反,它是在集群数据库环境中保存的加密字符串.因此,证书的物理内容不是证书作为文件名指针.因此,我需要指定证书的内容,而不是使用文件名.
例如:
$cert = '-----BEGIN CERTIFICATE-----....
upWbwmdMd61SjNCdtOpZcNW3YmzuT96Fr7GUPiDQ
-----END CERTIFICATE-----';
Run Code Online (Sandbox Code Playgroud)
有没有人知道我到底怎么做到这一点?我正在为这个问题摸不着头脑,但我的直觉本能说它是可行的.
在此先感谢大家!
我从第三方系统获得了PKCS#7加密包.该软件包未经过压缩,未加密,PEM编码,使用X.509证书签名.我还有来自提供商的PEM证书文件.
里面的数据是XML
我需要在Node.JS中执行以下操作:
一个示例包(没有敏感信息,数据是指我们的qa系统)http://pastebin.com/7ay7F99e
我使用以下命令生成了私钥和公钥:
openssl genrsa -out private_key.pem 512
openssl rsa -in private_key.pem -pubout -out public_key.pem
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用Python-RSA使用python脚本加载它们:
import os
import rsa
with open('private_key.pem') as privatefile:
keydata = privatefile.read()
privkey = rsa.PrivateKey.load_pkcs1(keydata,'PEM')
with open('public_key.pem') as publicfile:
pkeydata = publicfile.read()
pubkey = rsa.PublicKey.load_pkcs1(pkeydata)
random_text = os.urandom(8)
#Generate signature
signature = rsa.sign(random_text, privkey, 'MD5')
print signature
#Verify token
try:
rsa.verify(random_text, signature, pubkey)
except:
print "Verification failed"
Run Code Online (Sandbox Code Playgroud)
我的python脚本在尝试加载公钥时失败:
ValueError: No PEM start marker "-----BEGIN RSA PUBLIC KEY-----" found
Run Code Online (Sandbox Code Playgroud) 我在AWS上创建了一个EC2实例.我想使用PuTTY连接到实例,但它需要PPK文件.我有PEM文件,我想用PuTTYgen转换成PPK.
如何在Ubuntu上使用PuTTYgen将PEM文件转换为PPK?
pem ×10
openssl ×5
certificate ×2
private-key ×2
rsa ×2
ssl ×2
bouncycastle ×1
c ×1
c# ×1
cer ×1
command ×1
curl ×1
encryption ×1
java ×1
javascript ×1
jks ×1
key-pair ×1
node.js ×1
php ×1
pkcs#12 ×1
pkcs#7 ×1
pkcs#8 ×1
public-key ×1
putty ×1
python ×1
x509 ×1