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),因此您可能会忘记哪个键是哪个。在没有评论的情况下,保持私钥有条理的最佳做法是什么?
我想确保 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) 登录 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) 我目前在 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 s_client -showcerts -connect host.whatever:443 </dev/null。
除此之外,我想以以下格式以编程方式从链中提取根证书 -----BEGIN CERTIFICATE-----.....-----END CERTIFICATE-----
有没有人知道能够做到这一点并且已经随 OpenSSL 一起提供的功能?
我在 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 曲线?
我无法生成 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
私人的
连续剧
底部三个是文件,上面是文件夹。
我找到的答案指向缺少索引文件。但它存在于我的机器上。我不知道我是否把它放在正确的位置。 …
根据本指南,我尝试创建用于签署 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) 我正在使用 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 是否缺少我需要指出的其他/更多证书?
我有一个应用程序,它已在 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 ×10
ssl ×2
apache-2.2 ×1
centos ×1
centos6 ×1
certificate ×1
crl ×1
mysql5.5 ×1
nginx ×1
php56 ×1
phpmyadmin ×1
powershell ×1
private-key ×1
rsa ×1
smtp ×1
ssh ×1
windows ×1