我正在创建一个网页来获取敏感的客户信息,并希望将其放在SSL安全页面上.
我曾被CA要求提供CSR.
我打算在服务器上安装OpenSSL并创建其中一个.
这是否意味着我创建CSR的服务器与我们安装他们提供给我的证书的服务器相同,还是可以将其安装在其他地方?
是什么将他们提供的证书与我创建的CSR联系起来?
谢谢你的帮助.
我对使用WHM/cPanel进行现有Comodo扩展验证证书的SSL续订过程中的某些内容感到困惑.
我们已经获得Comodo的替换证书,我相信每个人都为他们提交CSR.我说"我相信"因为这台服务器有3个人可以访问WHM,但我确信去年没有人在摆弄.
听起来有可能吗?如果是替代品,可以在没有CSR的情况下提供证书吗?我会尝试抓住Comodo但是周末,并且看到旧证书在一天内耗尽,我以为我会咨询stackHiveMind :)
更多信息:作为测试,我尝试安装新的证书并"获取"现有的私钥,但是当我尝试提交时,我收到以下错误: 由于错误导致SSL安装中止:模数不匹配,密钥文件与证书不符.请使用正确的密钥文件
OpenSSL Cookbook中的示例openssl root ca config 定义了以下内容(p40):
[req]
...
req_extensions = ca_ext
[ca_ext]
...
Run Code Online (Sandbox Code Playgroud)
稍后(p43),生成根ca密钥,然后生成root ca自签名证书.
openssl req -new \
-config root-ca.conf \
-out root-ca.csr \
-keyout private/root-ca.key
openssl ca -selfsign \
-config root-ca.conf \
-in root-ca.csr \
-out root-ca.crt \
-extensions ca_ext
Run Code Online (Sandbox Code Playgroud)
在这个特定的用例中,req_extensions不是多余的吗?什么时候真的需要req_extension?
我正在尝试使用以下方法创建证书请求(CSR),我需要提供私钥,我的理解是CSR需要/仅包含公钥信息以及公司名称等请求者的其他详细信息.但是如果提取公钥并在创建CSR时传递它会抛出以下错误,所以我想知道它为什么需要私钥,虽然我理解私钥也包含公钥,是不是因为公钥是可信的什么时候使用密钥对或其他形式的私钥?
openssl genrsa -out ~/domain.com.ssl/domain.com.key 2048
openssl req -new -sha256 -key ~/domain.com.ssl/domain.com.key -out ~/domain.com.ssl/domain.com.csr
Run Code Online (Sandbox Code Playgroud)
尝试使用公钥生成:
openssl rsa -in domain.com.key.pem -pubout domain.publickey
openssl req -new -sha256 -key domain.publickey -out cert.csr
unable to load Private Key
140258108909384:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY
Run Code Online (Sandbox Code Playgroud) 我已经在java卡中生成了密钥对并返回公钥。我在 android 应用程序中再次生成公钥,然后在 android 中生成 CSR
private byte[] CertReqGeneration() throws Exception
{
if(publickeyobj==null)
return null;
String info = "CN=cn, OU=ou, O=o, C=cn, ST=city";
X500Principal x500 = new X500Principal(info);
X500Name x500name;
x500name= X500Name.getInstance(x500.getEncoded());
CertificationRequestInfo csrInfo = new CertificationRequestInfo(x500name, publickeyobj, new DERSet());
ASN1EncodableVector v = new ASN1EncodableVector();
v.add(csrInfo);
ASN1ObjectIdentifier oid = new ASN1ObjectIdentifier("0.0");
v.add(new DERSequence(oid));
v.add(new DERBitString(new byte[] {}));
byte[] encoded = new DERSequence(v).getEncoded();
byte[] PKCS10= DataSignGeneration(encoded);
byte[] encoded = Base64.encode(PKCS10);
String base64=new String(encoded);
return base64;
}
Run Code Online (Sandbox Code Playgroud)
但是当我想在 ca 中发布它时,我收到错误 asn1 bad …
我正在尝试为一位同事创建一个新的私钥和 CSR 文件,并提供一些详细信息:
C = US
S = Florida
L = XXXXX
O = Foo Inc.
OU = IT
Run Code Online (Sandbox Code Playgroud)
我阅读了有关使用 OpenSSL 生成密钥和 CSR 的内容,并使用命令正常创建它:
openssl req -new -nodes -keyout mydomain.key -out mydomain.csr -subj "/C=US/S=Florida/L=XXXXX/O=Foo Inc./OU=IT/CN="
Run Code Online (Sandbox Code Playgroud)
但这会返回一个错误:
Generating a 2048 bit RSA private key
..................+++
..+++
writing new private key to 'mydomain.key'
-----
req: Skipping unknown attribute "S"
problems making Certificate Request
139945692307904:error:0D06407A:asn1 encoding routines:a2d_ASN1_OBJECT:first num too large:../crypto/asn1/a_object.c:61:
139945692307904:error:0D07A098:asn1 encoding routines:ASN1_mbstring_ncopy:string too short:../crypto/asn1/a_mbstr.c:102:minsize=1
Run Code Online (Sandbox Code Playgroud)
我在这里遗漏了一些明显的东西吗?最初给了他一个正常生成的 CSR,没有 -subj 参数(使用 ubuntu 终端填写),但他说包含“ST”缩写导致他的 CA 拒绝。状态参数必须是“S”。我不经常使用 …
互联网上有大量有关 OpenSSL CSR 配置文件外观的示例,但我还没有遇到过规范/属性实际上标准化/声明的地方。
对于iphone推送通知SSL证书,您需要为他们提供CSR文件...
我已经保存了一段时间以来的CSR文件,每当我想生成SSL证书时,我总是给上传相同的CSR文件...
现在我一直在想,因为在生成CSR文件时,我实际上是在生成私钥,也可能是公钥...
所以我想知道当我使用相同的CSR文件时我遇到了什么缺点..虽然当我下载SSL证书时,它们出现在钥匙串中,好像有多个私钥(尽管它们具有相同的名称)和每个都附加到不同的SSL证书.是否建议每次都生成一个新的CSR文件?为什么?如果没有必要,那怎么样?谢谢
从网页中获取一个字符串作为它
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDPzCCAqgCAQAwZDELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAmJqMQswCQYDVQQH
EwJiajERMA8GA1UEChMIbXhjei5uZXQxETAPBgNVBAsTCG14Y3oubmV0MRUwEwYD
VQQDEwx3d3cubXhjei5uZXQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMQ7
an4v6pHRusBA0prMWXMWJCXY1AO1H0X8pvZj96T5GWg++JPCQE9guPgGwlD02U0B
NDoEABeD1fwyKZ+JV5UFiOeSjO5sWrzIupdMI7hf34UaPNxHo6r4bLYEykw/Rnmb
GKnNcD4QlPkypE+mLR4p0bnHZhe3lOlNtgd6NpXbAgMBAAGgggGZMBoGCisGAQQB
gjcNAgMxDBYKNS4yLjM3OTAuMjB7BgorBgEEAYI3AgEOMW0wazAOBgNVHQ8BAf8E
BAMCBPAwRAYJKoZIhvcNAQkPBDcwNTAOBggqhkiG9w0DAgICAIAwDgYIKoZIhvcN
AwQCAgCAMAcGBSsOAwIHMAoGCCqGSIb3DQMHMBMGA1UdJQQMMAoGCCsGAQUFBwMB
MIH9BgorBgEEAYI3DQICMYHuMIHrAgEBHloATQBpAGMAcgBvAHMAbwBmAHQAIABS
AFMAQQAgAFMAQwBoAGEAbgBuAGUAbAAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABp
AGMAIABQAHIAbwB2AGkAZABlAHIDgYkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAADANBgkqhkiG9w0BAQUFAAOBgQBIKHVhHb9FZdVLV4VZ
9DK4aBSuYY//jlIpvsfMIdHXfAsuan7w7PH87asp1wdb6lD9snvLZix1UGK7VQg6
wUFYNlMqJh1m7ITVvzhjdnx7EzCKkBXSxEom4mwbvSNvzqOKAWsDE0gvHQ9aCSby
NFBQQMoW94LqrG/kuIQtjwVdZA==
-----END NEW CERTIFICATE REQUEST-----
Run Code Online (Sandbox Code Playgroud)
如何将其解码为纯文本
Certificate information
Common name: www.xxx.net
Organization:xxx.net
Organizational unit:xxx.net
City/locality:bj
State/province:bj
Country:CN
Signature algorithm:SHA1
Key algorithm:RSA
Key size:1024
Run Code Online (Sandbox Code Playgroud)
我知道有第三方 pyopenssl,但不确定如何从 Web 前端处理字符串缓冲区。或者你有什么更好的主意?谢谢
我想看看是否可以在iOS中生成CSR(证书签名请求),以及是否有库.我想生成一个请求,使用扩展中的私钥对其进行签名,然后将CSR请求发送回服务器.
这是可能的,有一个很好的图书馆吗?
谢谢
我正在尝试在嵌入式设备中生成 CSR(证书签名请求)。我在一台嵌入式设备中实现了一些 OpenSSL 功能。不幸的是我只有几个可用的功能。到目前为止,我已经能够生成 RSA 私钥,现在我需要生成 CSR。
我的库没有任何功能X509_REQ_new()
,X509_REQ_get_subject_name()
例如 等。因此我通过直接创建 DER 文件来构建 CSR。
DER格式的CSR解码如下:
如果我有所有可用的 OpenSSL 函数,我会使用X509_REQ_sign(x509_req, pKey, EVP_sha1())
,但正如我之前所说,我没有任何可用的 X509 对象。
为了构建该部件,我需要签署什么?
我需要生成一个我已经做过很多次的CSR.但是,我试图生成它的证书只有CN,OU和DC的主题值.OpenSSL不允许您将State,City或O值留空; 它只是使用默认值自动填充它们,你无法删除它.
如何使用这些奇怪的值生成CSR?
我目前正试图通过使用存储私钥和公钥的bouncycastle lib(java或C#)和智能卡(epass2003)来生成CSR.
我发现这个例子.Net以编程的方式签署了Bouncy Castle的PKCS#10请求,但是有必要直接访问这对密钥,这是不可能的,因为智能卡不允许访问他们的私钥.
任何人都可以通过使用智能卡中的一对密钥来帮助生成CSR吗?
最好的祝福