我有一个签名的 CA,由我的大学颁发。我使用他们的公钥文件生成了我的 CSR,如下所示:
openssl genrsa -out myservername.key 2048 (new key)
openssl req -new -key myservername.key -out myservername.csr
Run Code Online (Sandbox Code Playgroud)
我给他们发了 CSR,他们给我发回了签名的 .crt 文件。
我为我的 CA 密钥和证书创建了一个目录并将它们放在那里。
我的 httpd.conf 的相关部分如下所示:
<VirtualHost _default_:443>
SSLEngine on
SSLCACertificateFile /var/cosign/certs/CA/publickey.pem
SSLCertificateFile /var/cosign/certs/myserver.crt
SSLCertificateKeyFile /var/cosign/certs/myserver.key
DocumentRoot /var/www/html/
<Directory /var/www/html>
Options -Indexes
AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)
但它没有将此证书用于 SSL。如果我执行此命令:
openssl s_client -connect localhost:443 -showcerts
Run Code Online (Sandbox Code Playgroud)
我明白了:
CONNECTED(00000003)
depth=0 C = --, ST = SomeState, L = SomeCity, O = SomeOrganization, OU = SomeOrganizationalUnit, CN = portcharlotte, emailAddress = root@portcharlotte
verify error:num=18:self signed …Run Code Online (Sandbox Code Playgroud) 我已经尝试设置 Postfix 和 Dovecot 好几天了,我想我已经解决了所有问题,除了刚刚出现的问题。当我尝试重新启动 Dovecot 时,我收到以下错误消息:
doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf: ssl enabled, but
ssl_cert not set
[....] Restarting IMAP/POP3 mail server: dovecotdoveconf: Fatal: Error in configuration
file /etc/dovecot/dovecot.conf: ssl enabled, but ssl_cert not set
Run Code Online (Sandbox Code Playgroud)
当我检查 dovecot.conf 时,没有任何关于 ssl 的内容,所以我假设错误是引用了10-ssl.conf. 我注意到设置被注释掉了:
# ssl = no
# ssl_cert = </etc/ssl/dovecot.pem
# ssl_key = </etc/ssl/private/dovecot.pem
Run Code Online (Sandbox Code Playgroud)
我知道这些之前已取消注释,但如果我现在取消注释,我会在启动时收到一个不同的错误,关于 10-ssl.conf 中的意外值 ssl。从 Dovecot wiki 中,即使该值被其他地方的特定协议覆盖,也必须设置该值。
如果我将 ssl 值注释掉,我会收到关于 ssl 已启用但未设置的第一条错误消息。
早些时候,我使用 OpenSSL 创建了一个自签名证书,但没有收到任何有关未配置 ssl 的错误消息。事实上,我能够从另一台客户端机器登录到 pops,它给出了关于证书不受信任的通常警告。但是,我确实注意到证书引用了不正确的主机名,这是在我重建 VPS 并愚蠢地安装和配置 Dovecot 并设置了错误的主机名后引起的。 …
从man 8 sshd关于授权密钥文件格式和command="command"选项:
请注意,此命令可能会被 sshd_config(5) ForceCommand 指令或嵌入在证书中的命令取代。
使用ssh-keygen -O force-command="command"允许将命令嵌入到证书中。但是如何验证命令没有嵌入到证书中呢?沿着防止执行意外命令的相同思路,是否ForceCommand总是覆盖嵌入在证书中的命令?
恶意用户能否绕过 ssh authorized_keys 强制命令?问了一个关于安全性的更一般的问题,但目前那里的答案没有提到嵌入在证书中的命令。
我使用以下行设置了 HAProxy 服务器:
bind *:443 ssl crt /etc/ssl/domain.com/domain.com.pem
我有以下文件:
/etc/ssl/domain.com/domain.com.key
/etc/ssl/domain.com/domain.com.csr
我从 Geotrust 购买了一个证书,它给了我一个Primary Intermediate Certificate,Secondary Intermediate Certificate和End Entity Certificate
我已经按照 PIC、SID、EEC、KEY 顺序连接了文件,/etc/ssl/domain.com/domain.com.pem其中传递openssl verify /etc/ssl/domain.com/domain.com.pem和openssl verify -CAfile /etc/ssl/domain.com/domain.com.pem /etc/ssl/domain.com/domain.com.pem
我还使用http://www.sslshopper.com/certificate-decoder.html验证了这个文件
当我跑步时,haproxy -f /etc/haproxy/haproxy.cfg -c我得到
'bind *:443 : inconsistencies between private key and certificate loaded from PEM file '/etc/ssl/domain.com/domain.com.pem'
Proxy 'http-in': no SSL certificate specified for bind '*:443' at [/etc/haproxy/haproxy.cfg] (use 'crt')
我是 SSL 证书的新手,我被困在哪里。谷歌搜索的答案让我跑了一英里,我没有进一步前进。
我在以这种方式创建 .pem …
我正在尝试使用以下subjectAltName生成证书:
hostname
*.hostname
hostname.mydomain.local
*.hostname.mydomain.local
Run Code Online (Sandbox Code Playgroud)
我通过 OpenSSL 生成 CSR,然后从 Microsoft Active Directory 证书服务获取证书。证书适用于以下替代名称:
hostname
hostname.mydomain.local
*.hostname.mydomain.local
Run Code Online (Sandbox Code Playgroud)
但是,*.hostname就是行不通。使用 Curl 进行测试,我得到以下输出:
% curl https://m.example/
curl: (51) SSL: certificate subject name '*.example' does not match target host name 'm.example'
Run Code Online (Sandbox Code Playgroud)
另一方面,如果我将 'm.example' 添加为subjectAltName,则它可以工作。因此,具有缩短主机名的通配符只是拒绝工作。
我发现apt-get install opensslUbuntu 14.04 上尚未提供最新的安全补丁。我需要采取哪些步骤才能安装最新的 OpenSSL 而不与之前的安装发生冲突apt-get?
我曾经使用以下命令从 LDAP 下载我的服务器 SSL 证书,以便将它们添加到 tomcat/java 密钥库:
openssl s_client -connect 10.140.136.192:636
由于 LDAP SSL(端口 636)已被弃用,我不再有可用的端口 636。我试图找到openssl s_client诸如此类的各种咒语-starttls,-tls1_2但是它们都没有产生证书。什么是魔术词来做到这一点?
我想将 PEM(+key) 证书转换为*.p12文件。我知道当我没有中级证书时,我是这样做的:
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
Run Code Online (Sandbox Code Playgroud)
有中级证书怎么办?
如何在使用 OpenSSL 签署证书请求时添加主题备用名称(如果重要,在 Windows 中)?
我已经从 IIS 界面生成了一个基本的证书签名请求 (CSR)。现在,我想添加几个主题备用名称,使用现有的根证书对其进行签名,然后返回证书以完成签名请求。
我能找到的每个教程都涉及生成一个新的私钥和一个全新的 CSR,但是我的印象是私钥驻留在发出请求的计算机上(我不一定有权访问)。我只想在添加备用名称的同时签署请求。我对 OpenSSL 和 CA 主题比较陌生,所以这可能是我的误解。
openssl ssl-certificate csr certificate-authority subject-alternative-names
* TLDR;如果您遇到连接问题,不仅要确保已将所需的规则添加到防火墙中,还要确保 ( $ iptables -L -v) 规则的顺序正确!*
现在已经几天了,我不明白为什么我的 IMAP 设置(在端口 993 上)拒绝工作(使用 Dovecot,版本 2.2.22)。连接不成功,由于某种原因我看不到。
对与 openssl 的连接进行故障排除:在端口 993 上连接不起作用:
$ openssl s_client -connect my-domain.com:993
Run Code Online (Sandbox Code Playgroud)
返回:
connect: Connection timed out
connect:errno=110
Run Code Online (Sandbox Code Playgroud)
但是使用的端口(993)似乎是开放的:
$ ufw status
Run Code Online (Sandbox Code Playgroud)
返回:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
25/tcp ALLOW Anywhere
587/tcp ALLOW Anywhere
993/tcp ALLOW Anywhere
143/tcp ALLOW Anywhere
465/tcp ALLOW Anywhere
110/tcp ALLOW Anywhere
995/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere …Run Code Online (Sandbox Code Playgroud)