标签: openssl

使用 openssl 或其他命令查看 PEM 证书文件(完整证书链)中的所有证书

通常,证书文件(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 x509

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

使用 openssl 获取 ec 公钥的 x 和 y 分量

我正在使用 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 位长,因此不能按原样使用(/拆分)
谢谢

ecc cryptography openssl

13
推荐指数
1
解决办法
6481
查看次数

如何从证书签名请求中导出公钥?

我编写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?

什么命令可以做到这一点?

感谢提前。

certificate openssl

11
推荐指数
2
解决办法
4万
查看次数

与 Pem Pass Phrase 和 Challenge Password 混淆

使用 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

10
推荐指数
1
解决办法
3万
查看次数

用于生成 AES 密钥的 OpenSSL 哈希函数

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”,哪种散列算法在倒数第二行之后生成未加盐的散列?

encryption openssl hashing aes

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

最终用户是否需要对 Heartbleed 安全漏洞采取任何措施?什么?

我在新闻中看到有关“Heartbleed”安全漏洞的消息。作为最终用户,我需要做些什么吗?

security passwords openssl heartbleed

10
推荐指数
1
解决办法
1508
查看次数

openssl req -new 带有一些默认的 subj 值

我想使用 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"

但是,这不会提示我输入通用名称。这样做的正确方法是什么?

openssl

10
推荐指数
1
解决办法
2万
查看次数

如何正确设置 openssl CA 以生成 ssl 客户端证书

我正在配置我的第一个 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)

openssl

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

Apache 中用于支持 TLS 1.0、1.1 和 1.2 的 SSLCipherSuite 设置

我有一个使用单个 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 的适当设置是什么,以便网站可以支持较旧的浏览器,并保持不错的安全级别?

apache-http-server https ssl openssl ssl-certificate

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

使用 OpenSSL 从 Ed25519 私钥中提取公钥?

Ed25519 私钥可以通过执行以下操作生成openssl genpkey -algorithm ed25519 -outform PEM -out private.pem。我的问题是...使用 OpenSSL 有没有办法从私钥获取公钥?

使用 RSA 私钥,您可以做到openssl rsa -in private.pem -pubout。这给出了与 RFC5280 中的SubjectPublicKeyInfo相对应的密钥(至少对我来说是这样)。

但是我怎样才能获得 Ed25519 密钥的类似公钥呢?我想我可以使用私钥生成 CSR 并从 CSR 中获取它,但这似乎需要大量工作。当然,这比运行单个命令需要做更多的工作......

openssl public-key

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