openssl ca和openssl x509命令有什么区别?我正在使用它来创建和签署我的 root-ca、intermed-ca 和客户端证书,但该openssl ca命令不会在证书上注册手机和电子邮件地址,而openssl x509会注册。
openssl x509:
openssl x509 -req \
-in client.req.pem \
-out client.cert.pem -signkey client.privkey.pem \
-CA ca.cert.pem -CAkey ca.key.pem -CAcreateserial -days 365
Run Code Online (Sandbox Code Playgroud)
打开ssl ca:
openssl ca \
-in client.req.pem \
-out client.cert.pem \
-extensions client_ext \
-startdate `date +%y%m%d000000Z -u -d -2day` \
-enddate `date +%y%m%d000000Z -u -d +1years+1day`
Run Code Online (Sandbox Code Playgroud)
我的ca.cnf
CA_HOME = .
RANDFILE = $ENV::CA_HOME/private/.rnd
#oid_section = new_oids
# XMPP address Support
#[ new_oids ]
#xmppAddr …Run Code Online (Sandbox Code Playgroud) 我走了很长一段路让java签署CSR,最后我能够做到这一点,但openssl告诉它无效。使用 openssl 签名的相同 CSR 通过验证步骤。
都是一样的 x509 版本 (1),没有扩展,Subject、Issuer 都是一样的。
我怀疑问题出在主题 DN(尤其是电子邮件)或日期上。
确认:
openssl verify -verbose -CAfile src/test/resources/ca.cer.pem o.cer.pem
o.cer.pem: OK
openssl verify -verbose -CAfile src/test/resources/ca.cer.pem client.cer.pem
client.cer.pem: C = RU, ST = Moscow, L = Moscow, O = Hoofs, OU = IT, CN = Danee Yaitskov
error 20 at 0 depth lookup:unable to get local issuer certificate
Run Code Online (Sandbox Code Playgroud)
文件大小相似:
1229 Jul 28 12:45 client.cer.pem 1233 Jul 28 13:00 o.cer.pem
它抱怨链中缺少证书,但我没有看到此类信息。
如何检查下一个父证书是什么?
好证书的相关资料:
openssl x509 -in o.cer.pem -text -noout
Certificate:
Data: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 pfx/p12 文件获取别名
keytool -v -list -storetype pkcs12 -keystore servercert.p12 -storepass 1234
这给了我
Keystore type: PKCS12
Keystore provider: SunJSSE
Your keystore contains 1 entry
Alias name: 1
Creation date: Jul 4, 2017
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=CSIT CA, O="CSIT CA,Ltd.", L=Dhaka, ST=Dhaka, C=BD
Issuer: EMAILADDRESS=csit@csit.com, CN=CSIT CA, OU=Software Department, O=CSIT CA, L=Dhaka, ST=Dhaka, C=BD
Serial number: 1
Valid from: Tue Jul 04 15:41:40 BDT 2017 until: Mon Mar 30 15:41:40 BDT 2020
Certificate fingerprints:
MD5: …Run Code Online (Sandbox Code Playgroud) 我想sha256指纹使用openssl.我试过了,但你必须要sha1.我该怎么办?
我正在使用OpenSSL 1.0.1f.
命令
openssl md5 * >rand.dat
openssl genrsa -rand rand.dat -aes256 2048 > server.key
openssl req -new -key server.key -sha256 -config openssl.cfg > server.csr
openssl x509 -fingerprint -sha256 -in server.csr -req -signkey server.key -extensions v3_req -extfile openssl.cfg -out server.cer
Run Code Online (Sandbox Code Playgroud)
更改默认值如下:
[ CA_default ]
default_md = sha256 # Change
[ req ]
req_extensions = v3_req # Uncomment
Run Code Online (Sandbox Code Playgroud) 我使用IP地址而不是DNS名称访问服务器时收到错误的证书错误.
是否在tls1.1中新引入了此功能.和tls 1.2?如果有人指出OpenSSL代码失败并返回错误的证书错误,那将是件好事.
我遇到了一个我似乎无法解释的 CSR 生成问题,并且想知道是否有人可以帮助我执行命令,或者告诉我我正在生成什么。
我认为我正在生成 PEM 格式的 CRT 证书,但似乎我的密钥不是 PEM 格式!?
这就是我所做的,以及我得到的。我创建了一个 CSR:
openssl req -nodes -new -newkey rsa:2048 -sha256 -out test.csr
这会生成 2 个文件: privkey.pem和test.csr
现在,当我尝试更新某些服务器时,他们抱怨我的私钥不是 PEM 格式。nginx 和 apache 似乎对我的密钥很满意。
当我使用以下方法转换密钥时:
openssl rsa -in privkey.pem -out privkey.rsa.pem
有用 !?!
vimdiff 直观地显示了文件中的差异,可以看到不仅标题不同,而且内容也发生了变化(前 4 个字符之后)
因此我的问题
即使我指定不在创建行中使用 DER,密钥是否以 DER-PEM 格式创建?
为了进行测试,我尝试执行以下 3 个步骤:
我在最后一步失败了(见下文)。我认为我的问题是我对我正在做的步骤有错误的理解,但我不明白它是什么。
# generate self signed CA certificate
openssl req -x509 -days 2557 -newkey rsa:1024 -out ca-cert.pem -keyout ca-sec-key.pem
# for another entity, generate another private key and a signing request
openssl req -newkey rsa:1024 -out sub-request.pem -keyout sub-sec-key.pem
# the following fails:
# sign the request using the CA certificate and key
openssl ca -cert ca-cert.pem -keyfile ca-sec-key.pem -in sub-request.pem -out sub-cert.pem
Run Code Online (Sandbox Code Playgroud)
错误:
The organizationName field needed to be the same in …Run Code Online (Sandbox Code Playgroud) 完成了以下步骤,但正如您所见,出现了以下错误:
openssl genrsa -out privkey.pem 2048
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:City: Roubaix
Locality Name (eg, city) []:NICE
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Our team name
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []: mobileapp.ourdomain.com
Email Address []:My email
Run Code Online (Sandbox Code Playgroud)