通常,证书文件(PEM)格式包含多个证书,例如:
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
.....
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
使用命令:
openssl x509 -in cert.pem -noout -text我可以看到第一个条目。
是否有任何内置方法可以显示第二个条目或所有条目。
有没有简单的方法可以查看所有条目?
我真正感兴趣的是:C,ST,O,OU,CN,主题,发行者和主题的有效期
我正在使用 openssl 从曲线“secp128r1”生成ECC的密钥对
我遵循的步骤:
首先我使用命令生成了一个私钥
openssl ecparam -genkey -name secp128r1 -noout -out private.pem
然后我使用命令查看了相应的公钥
openssl ec -in private.pem -text -noout
它显示的输出为:
读取 EC 密钥
私钥:(128 位)
priv:
00:9f:bf:2b:bd:06:86:3a:a1:bc:7c:3e:90:57:40:
f4:bc
pub:
04:04:ce :24:34:d4:cb:f2:58:94:2f:8a:5f:06:d7:
3f:ed:5a:50:ef:fb:cc:b7:49:62:16:62:9e :aa:d5:
30:a8:a5
ASN1 OID: secp128r1
我想从这里生成的公钥中明确地得到 x 和 y 组件,请有人建议正确的方法吗?
上面的公钥是 264 位长,因此不能按原样使用(/拆分)
谢谢
我编写Android代码生成RSA密钥对和证书签名请求(csr.txt)这里是我的csr内容:
-----BEGIN CERTIFICATE REQUEST-----
MIIBojCCAQ0CAQAwQjEVMBMGA1UEAwwMdGhhbmhsYW0uY29tMQwwCgYDVQQKDANC
S1UxGzAZBgNVBAsMElRlbGVjb20gRGVwYXJ0bWVudDCBnzANBgkqhkiG9w0BAQEF
AAOBjQAwgYkCgYEA0beMquCjIe3ILA8RpTTW/Xb+jXOz7g+xQJtBPL+fih8sB/d6
9u93nGGg+Dra1HS6bm2gns0J/Zm9A/AJgB3zAW5hpX0bgL2BJ/dcnjPMh3/peNWs
elu0sMOqYARFxCbKc3YPC04ZKp6RKgar5AhZAoOKuQLZtmb4EquxoM7CTqECAwEA
AaAiMCAGCSqGSIb3DQEJDjETMBEwDwYDVR0TAQH/BAUwAwEB/zALBgkqhkiG9w0B
AQsDgYEAMvdLO8e7llE+IG4smDtz8A9edTqbbglUMPMASVTEn1F7A1lu1u79depE
rNZtk983qflG7I57cvKS65O0G+Qo0xmvRNLFVw6iETwR16uPx3ffisDBPWJBIySI
Slh1mPRLgky1+EQezWzG5I7Nozo1DDk2skjbB4v7acFBcRoSl6Y=
-----END CERTIFICATE REQUEST-----
Run Code Online (Sandbox Code Playgroud)
我发现一个链接可以解码我的 csr 文件:

那么如何使用 openssl 将公钥从这个 csr 文件导出到 publickey.pem?
什么命令可以做到这一点?
感谢提前。
使用 openSSL 创建 CSR 时,它会问我:
Enter PEM pass phrase:
Run Code Online (Sandbox Code Playgroud)
之后它会问:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
Run Code Online (Sandbox Code Playgroud)
我读到 pem 密码用于加密密钥文件。任何使用密钥文件的服务(如 apache)在重新启动服务时都会要求输入 pem 密码。那么什么是挑战密码呢?
OpenSSL 使用什么哈希函数为 AES-256 生成密钥?我无法在他们的文档中的任何地方找到它。
$ touch file
$ openssl aes-256-cbc -nosalt -P -in file
enter aes-256-cbc encryption password: (I type "a" and hit enter)
Verifying - enter aes-256-cbc encryption password: (I type "a" and hit enter)
key=0CC175B9C0F1B6A831C399E269772661CEC520EA51EA0A47E87295FA3245A605
iv =4FA92C5873672E20FB163A0BCB2BB4A4
Run Code Online (Sandbox Code Playgroud)
key=对于输入“a”,哪种散列算法在倒数第二行之后生成未加盐的散列?
我在新闻中看到有关“Heartbleed”安全漏洞的消息。作为最终用户,我需要做些什么吗?
我想使用 openssl 创建 CSR,同时提供国家名称、州或省名称等的一些答案,但我仍然希望它提示输入通用名称 (FQDN)。到目前为止,我有类似的东西:
openssl req -new -sha256 -key example.com.key -out example.com.csr -subj "/C=US/ST=Ohio/L=Columbus/O=Widgets Inc/OU=Some Unit"
但是,这不会提示我输入通用名称。这样做的正确方法是什么?
我正在配置我的第一个 CA。它的目的是为我们的客户颁发证书,他们将使用它们通过 https 访问我们的 EDI 服务。所以我需要生成 ssl 客户端证书。至此,证书签名全过程正常,可以成功使用证书访问我们的服务,但我担心一件事:
生成的证书目的是通用的方式:
$ openssl x509 -purpose -noout -in client.crt.pem
Certificate purposes:
SSL client : Yes
SSL client CA : No
SSL server : Yes
SSL server CA : No
Netscape SSL server : Yes
Netscape SSL server CA : No
S/MIME signing : Yes
S/MIME signing CA : No
S/MIME encryption : Yes
S/MIME encryption CA : No
CRL signing : Yes
CRL signing CA : No
Any Purpose : Yes
Any Purpose …Run Code Online (Sandbox Code Playgroud) 我有一个使用单个 IP 地址运行多个域名的 Apache 2.4.7 Web 服务器。由于贵宾犬漏洞,我添加了以下SSLCipherSuite行。它运行了一段时间,但用户报告在 Firefox 中访问该页面时出现问题。很遗憾,要求用户切换浏览器不是一种选择,因此我需要更改设置以支持 TLS 1.0、1.1 和 1.2。
当前设置为:
<VirtualHost ZYX.XYZ.org:443>
DocumentRoot /var/www/ZYX.XYZ/www
ServerName ZYX.XYZ.org
<Directory "/var/www/ZYX.XYZ/">
allow from all
Options -Indexes
</Directory>
SSLEngine on
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-SSLv3:-EXP:!kEDH
SSLCertificateFile /etc/apache2/ssl/XYZ.org.crt
SSLCertificateKeyFile /etc/apache2/ssl/XYZ.org.key
SSLCACertificateFile /etc/apache2/ssl/gd_bundle-g2-g1.crt
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
如果我们查看Qualys 的 test,我们会看到服务器仅支持 TLS 1.2。
启用 TLS 1.0、TLS 1.1 和 TLS 1.2 的适当设置是什么,以便网站可以支持较旧的浏览器,并保持不错的安全级别?
Ed25519 私钥可以通过执行以下操作生成openssl genpkey -algorithm ed25519 -outform PEM -out private.pem。我的问题是...使用 OpenSSL 有没有办法从私钥获取公钥?
使用 RSA 私钥,您可以做到openssl rsa -in private.pem -pubout。这给出了与 RFC5280 中的SubjectPublicKeyInfo相对应的密钥(至少对我来说是这样)。
但是我怎样才能获得 Ed25519 密钥的类似公钥呢?我想我可以使用私钥生成 CSR 并从 CSR 中获取它,但这似乎需要大量工作。当然,这比运行单个命令需要做更多的工作......
openssl ×10
aes ×1
certificate ×1
cryptography ×1
ecc ×1
encryption ×1
hashing ×1
heartbleed ×1
https ×1
passwords ×1
public-key ×1
security ×1
ssl ×1
x509 ×1