标签: openssl

在没有注释的情况下跟踪 SSH 私钥

SSH 公钥支持注释(仅由附加到密钥末尾的文本组成),这使得识别其​​他无法识别的 id_rsa.pub 文件变得容易。您可以使用注释来存储信息,例如密钥属于谁、创建时间以及用于什么机器。

私钥似乎缺少此功能。ssh-keygen -C comment将生成一个密钥对,将注释附加到公钥,但私钥将保持未注释。ssh-keygen有一个-c论点“请求更改私钥和公钥文件中的注释”,但是

root@kitsune:~# ssh-keygen -c -f id_rsa
Comments are only supported for RSA1 keys.
Run Code Online (Sandbox Code Playgroud)

所以看起来 SSH2 私钥格式没有注释字段。只要将这对密钥放在一起并放在正确的位置,这通常没问题,但是文件可能会被复制和移动(这可能发生在帐户/机器共享密钥时)或意外覆盖,并且它们都有相同的名称(id_rsa),因此您可能会忘记哪个键是哪个。在没有评论的情况下,保持私钥有条理的最佳做法是什么?

ssh rsa openssl private-key

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

使用 SSL 测试 SMTP 服务器?

我想确保 SSL/TLS 连接确实在端口 465 上建立到我的 SMTP 服务器。(服务器在 Ubuntu 14.04 上运行)

使用:-

openssl s_client -connect example.co.uk:465

我得到如下所示的响应...

请注意,我收到了以下消息:-

“验证返回码:20(无法获得本地颁发者证书)”

但是,我可以继续与 EHLO 和 AUTH LOGIN 对话。

这是否意味着我“不在”安全连接上,并继续未加密?

谢谢约翰

CONNECTED(00000003)
---
Certificate chain
 0 s:/CN=example.co.uk
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----
<removed for clarity>
-----END CERTIFICATE-----
subject=/CN=example.co.uk
issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
---
No client certificate CA names sent
---
SSL handshake has read 3050 bytes …
Run Code Online (Sandbox Code Playgroud)

smtp openssl

5
推荐指数
2
解决办法
9733
查看次数

尝试通过 SSL 将 phpmyadmin 连接到远程 MySql 时出现无效的密钥长度错误

登录 phpmyadmin 实例时收到这些错误消息

Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.

mysqli_query(): SSL operation failed with code 1. OpenSSL Error messages: error:0607A082:digital envelope routines:EVP_CIPHER_CTX_set_key_length:invalid key length error:0607A082:digital envelope routines:EVP_CIPHER_CTX_set_key_length:invalid key length

mysqli_query(): MySQL server has gone away

mysqli_query(): Error reading result set's header
Run Code Online (Sandbox Code Playgroud)

我已经在主机上设置了 mysql 认证的“自签名”,并且从运行 phpMyAdmin 的机器我可以通过 mysql 客户端连接到远程 MySql

expro_app@ubuntu-app:/etc/mysql$ mysql --ssl-ca=ca-cert.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem -h XX.XXX.X.103 -P 7306 -u …
Run Code Online (Sandbox Code Playgroud)

openssl mysql5.5 php56 phpmyadmin

5
推荐指数
0
解决办法
2667
查看次数

禁用 Apache 2.2 的 RC4 密码

我目前在 Centos 6.7 机器上运行 Apache 2.2。我需要在 openSSL 下禁用 RC4 密码的使用。这是我当前的 SSL 配置:

SSL Protocol support:
# List the enable protocol levels with which clients will be able to
# connect.  Disable SSLv2 access by default:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

#   SSL Cipher Suite:
# List the ciphers that the client is permitted to negotiate.
# See the mod_ssl documentation for a complete list.
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
Run Code Online (Sandbox Code Playgroud)

我发现很多网站都建议同时更改一堆允许的密码,但我不确定这是否会破坏其他东西。

openssl centos6 apache-2.2

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

Openssl:从证书链中提取根证书?

我正在获取一个证书链openssl s_client -showcerts -connect host.whatever:443 </dev/null

除此之外,我想以以下格式以编程方式从链中提取根证书 -----BEGIN CERTIFICATE-----.....-----END CERTIFICATE-----

有没有人知道能够做到这一点并且已经随 OpenSSL 一起提供的功能?

ssl openssl ssl-certificate certificate-authority

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

具有 384 位 Ecc 证书和 openssl 的 nginx 但曲线 secp256r1 不可用

我在 Debian 8 上使用nginx 1.11.7withOpenssl 1.1.0c并且有一个带有 384 位密钥的自签名 ecc 证书用于测试目的。

我想使用曲线 X25519、secp384r1 和 secp256r1。

Nginx 正常启动,在 nginx 配置中启用 X25519 和 secp384r1:

ssl_ecdh_curve X25519:secp384r1;,

但在使用 secp256r1 时拒绝重新启动/重新加载:

ssl_ecdh_curve secp256r1;

错误信息:SSL_CTX_set1_curves_list("secp256r1") failed (SSL:)

那么我如何能够在上述设置中使用 secp256r1 曲线?

ssl nginx openssl

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

加载 CRLnumber 时出现 OpenSSL 错误

我无法生成 CRL。我可能在配置文件中遗漏了一些东西。我得到的错误是“加载 crl 编号时出现 openssl 错误”。CRL 配置部分:

 [ CA_default ]
# Directory and file locations.
dir               = box/ca
certs             = $dir/certs
crl_dir           = $dir/crl
new_certs_dir     = $dir/newcerts
database          = $dir/index.txt
serial            = $dir/serial
RANDFILE          = $dir/private/.rand
# For certificate revocation lists.
crlnumber         = $dir/crlnumber
crl               = $dir/crl/RcCA.crl
crl_extensions    = crl_ext
default_crl_days  = 30
Run Code Online (Sandbox Code Playgroud)

我使用的命令:

openssl ca -config full-path-to-openssl.cnf  -gencrl -out full-path-to-RcCA.crl
Run Code Online (Sandbox Code Playgroud)

其中 rcCA 是 crl 文件。文件结构:
根CA

  • 证书
  • 克林
  • 企业社会责任
  • 中间的
  • 新证书
  • 效果图
  • 私人的

  • 连续剧

  • openssl.cnf
  • 索引.txt
  • 编号

底部三个是文件,上面是文件夹。
我找到的答案指向缺少索引文件。但它存在于我的机器上。我不知道我是否把它放在正确的位置。 …

openssl certificate-authority crl

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

在 Windows 上创建代码签名证书以签署 PowerShell 脚本

根据本指南,我尝试创建用于签署 PowerShell 脚本的证书:

CD C:\OpenSSL-Win32\bin
REM Create the key for the Certificate Authority.  2048 is the bit encryptiong, you can set it whatever you want
openssl genrsa -out C:\Test\ca.key 2048
openssl req -config C:\OpenSSL-Win32\bin\openssl.cfg -new -x509 -days 1826 -key C:\Test\ca.key -out C:\Test\ca.crt
REM Now I'm creating the private key that will be for the actual code signing cert
openssl genrsa -out C:\Test\codesign.key 2048
openssl req -config C:\OpenSSL-Win32\bin\openssl.cfg -new -key C:\Test\codesign.key -reqexts v3_req -out C:\Test\codesign.csr
openssl x509 -req -days …
Run Code Online (Sandbox Code Playgroud)

windows powershell certificate openssl

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

OpenSSL 一直告诉我“无法获得本地颁发者证书”

我正在使用 CentOS,它安装了 OpenSSL 1.0.2k-fips,并且我已经构建并安装了 1.1.0g 版,作为此处概述的 HTTP2 安装的一部分:https ://www.tunetheweb.com/performance/ http2/

我一直在使用 1.1.0g,但最近我更新了证书,现在在尝试验证 CA 时它似乎丢失了。CA 文件的位置没有改变,1.0.2k-fips 版本似乎没问题,但 1.1.0g 没有过去抱怨:

Verify return code: 20 (unable to get local issuer certificate)
Run Code Online (Sandbox Code Playgroud)

所以,我已经验证了证书是好的,位置没有改变,我没有手动更改任何配置。

我想也许我应该重建 1.1.0g,但这没有任何改变。我也尝试使用命令的-CApath选项openssl,就像这样(使用与 1.0.2k-fips 使用的目录相同的目录):

echo | /usr/local/ssl/bin/openssl s_client -connect example.com:443 -CApath /etc/pki/tls
Run Code Online (Sandbox Code Playgroud)

我也试过-CAfile,直接指向ca-bundle.crt我知道有正确证书的那个(1.0.2k-fips 使用它们没有问题),仍然没有变化。

我不知道为什么它不会获取我的证书,并且想知道在我更改证书之前这个问题是否已经存在(我检查了它们在更改后是否工作,可能 1.1.0g 已经在那一点)。

我认为这可能是由于在系统上执行的更新,破坏了某些链接或文件,但是当证书内容看起来都正常时,去哪里查看?或者 1.1.0g 是否缺少我需要指出的其他/更多证书?

centos openssl ssl-certificate

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

openssl:允许使用不安全的客户端证书

我有一个应用程序,它已在 looooong 前分发。该应用程序通过客户端证书身份验证为客户端提供 https 接口。到应用程序发布时,提供 1024 位密钥长度证书可能没问题。尽管我们总是宣传客户用他们自己的 PKI 更新默认证书,但他们中的大多数只是使用默认证书,所以我有数千个这样运行的实例。现在我需要编写一个客户端(在 python 中)来查询该应用程序。该客户端将在更现代的 linux 发行版上运行,其中库和客户端应用程序是针对 openssl 1.1.1a 编译的。因此,在尝试使用弱默认客户端证书访问 https 接口时,我总是收到以下错误:OpenSSL 错误:

140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small
Run Code Online (Sandbox Code Playgroud)

在较旧的发行版(使用较旧的 openssl)上运行相同的代码或使用针对 gnutls 编译的应用程序可以正常工作。

几个问题:

  • 我认为这是在 openssl 中出于安全原因引入的限制吗?
  • 如果有,是什么时候引入的?
  • 有没有办法禁用此检查?(最好无需重新编译客户端库)

openssl

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