标签: openssl

将 crt 证书转换为 pem 时出错

我使用easyRSA生成了一个CA证书,我打算将它与FreeRadius一起使用以使用starttls,现在我发现FreeRadius使用pem格式的证书,但在我的情况下证书是二进制格式,因此我尝试使用以下命令以我的证书转换从CRT它PEM格式

root@s1:/etc/freeradius/certs/easy-rsa/keys# openssl x509 -inform DER -in server.crt -out server.pem -text
unable to load certificate
3074016960:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1197:
3074016960:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:374:Type=X509
Run Code Online (Sandbox Code Playgroud)

第二个:

root@s1:/etc/freeradius/certs/easy-rsa/keys# openssl x509 -in server.crt -inform DER -out server.pem -outform PEM
unable to load certificate
3073529536:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1197:
3073529536:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:374:Type=X509
Run Code Online (Sandbox Code Playgroud)

但正如所见,我总是出错,我不知道为什么。

这是我的 server.crt 文件:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=AT, ST=ST, L=Graz, O=Noureldin, OU=IT, CN=noureldin.local/name=Noureldin-CA/emailAddress=m.i.noureldin@gmail.com
        Validity
            Not …
Run Code Online (Sandbox Code Playgroud)

certificate openssl ssl-certificate

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

无法与来自 GCE Ubuntu 16.04.1 映像的一台服务器完成 SSL 握手(但在其他任何地方都有效)

我正在尝试通过 SSL 连接到 swift.ca-ns-1.clouda.ca:8443。我可以从多台其他机器连接到这个服务器,包括其他新的 16.04.1 机器(不在 GCE 上),并且我从不是 Ubuntu 16.04.1 的其他 GCE 实例连接到它,但是当我尝试从任何 Ubuntu 16.04 连接时。 1 个 GCE 实例 SSL 握手失败。我在下面发布了来自 openssl 的示例输出。请注意,我可以连接到我尝试过的所有其他 SSL 服务器。CloudA自己也想不通。有任何想法吗?

% openssl s_client -connect swift.ca-ns-1.clouda.ca:8443
CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 305 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : …
Run Code Online (Sandbox Code Playgroud)

ssl openssl google-compute-engine

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

如何检查 apache 的 SNI(服务器名称指示)可用性?

我有一个 centos 7 服务器。我使用 IUS 存储库 ( https://ius.io/ )从 apache 2.4.6 切换到 apache 2.4.25 。我的目标是用一个 IP 支持多个 SSL 证书。

我已经安装:

  • Apache/2.4.25 (CentOS)
  • httpd24u-mod_ssl-2.4.25-3.ius.centos7.x86_64
  • openssl-1.0.1e-60.el7_3.1.x86_64

apache 现在是否启用了 SNI?

或者我是否必须像文档(https://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI)一样使用 ./configure --with-ssl=/path/to/your/openssl 从头开始​​构建它?

感谢您的时间。

mod-ssl openssl ssl-certificate sni apache-2.4

4
推荐指数
1
解决办法
8706
查看次数

无法使用 SSL 保护子域

我正在尝试保护一个子域:

bitbucket.kl.company.com
Run Code Online (Sandbox Code Playgroud)

该证书适用于 *.company.com。所以我得到一个错误:

bitbucket.kl.company.com uses an invalid security certificate. The certificate is only valid for the following names: *.company.com, company.com, bitbucket-mirror.company.com Error code: SSL_ERROR_BAD_CERT_DOMAIN
Run Code Online (Sandbox Code Playgroud)

令人费解的是,有些浏览器并没有抱怨,而是按预期加载页面。我的证书有问题吗?我可以专门为 bitbucket.kl.company.com 订购证书,而不使用 *.company.com 吗?

ssl openssl ssl-certificate ssl-certificate-errors

4
推荐指数
1
解决办法
172
查看次数

从 pem 转换为 der 时,openssl 证书链丢失

我有一个来自 Letsencrypt 的 .pem 格式的证书链,称为 fullchain.pem

它在链中有 2 个证书:

keytool -printcert -v -file fullchain.pem |grep "Certificate fingerprints" |wc -l
2
Run Code Online (Sandbox Code Playgroud)

当我将其转换为 .der 时使用

openssl x509 -in fullchain.pem -out cert.der -outform DER
Run Code Online (Sandbox Code Playgroud)

它只导出最后一个

keytool -printcert -v -file cert.der |grep "Certificate fingerprints" |wc -l
1
Run Code Online (Sandbox Code Playgroud)

这是openssl中的错误吗?我错过了一个参数吗?

certificate openssl x509

4
推荐指数
1
解决办法
6525
查看次数

如何使其在本地网络中工作证书固定(HPKP)和自签名证书?

我需要在本地网络中使用 SSL,我想避免浏览器无效证书错误。

我的想法是生成自签名证书,然后使用证书锁定(HPKP)来告诉浏览器只有这个证书可以信任?

我目前正在探索与这个想法相关的所有选项。我已经使用自签名证书和带有值的 HPKP 标头(Public-Key-Pins)进行了测试,例如:

"pin-sha256="somedataencodedbase64=";pin-max-age=10;includeSubDomains"

浏览器不接受它作为安全。我仍然需要完成这个测试(使用不同的自签名证书,我需要确保 SPKI 计算正确......

现在的问题是:

  • 为给定的本地主机名(例如 mylocalserver)颁发的自签名证书是否有效并固定在服务器响应中?这甚至会起作用吗?

  • 证书锁定是否适用于本地主机名(这意味着,它仅适用于域名)?

  • 固定证书是否必须首先有效或由 CA 推动(这意味着不能固定自签名证书 - 除非它们被添加到客户端的信任存储)?

  • 在本地拥有有效 SSL 的最简单的另一种方法是什么,因此我不需要配置客户端(客户端信任存储)?

  • 我们可以将证书固定视为可信 CA 的替代方案吗?我在某处读到它只是另外所以这意味着证书链首先需要有效,然后你可以固定它?

  • 我也越来越多地思考这个想法是否可行。因为那样我们会看到更多地使用这种技术。每个人都会生成自签名证书并固定它......并在CA可信证书上节省几美元......或者我对整个概念的错误或正确?

ssl openssl certificate-authority hpkp

4
推荐指数
1
解决办法
1192
查看次数

内部网络 CA:“无效的通用名称”或无效的证书(Internet Explorer 和 Windows 的证书 mmc 管理单元除外)

我们在混合 Windows / Linux 环境中运行由 Ubuntu 16.04 服务器和用于内部资源的 OpenSSL 后端提供支持的内部证书颁发机构。

该 CA 与一些内部网站一起使用,试图为内部网站、软件部署等提供有效、可信的站点证书。我们有一个问题。

CA 根证书由 GPO 推送到我们所有的 Windows 系统,或者手动安装。但是,该 CA 签署的每个证书最终都会出现一些问题 - Chrome 和 Firefox 都表明该证书的通用名称无效,而其他实用程序(例如此处的 XMPP 服务器)无法验证该证书,即使 CA 证书在信托商店。

只有 Internet Explorer 遵守该证书。不幸的是,我们是一个 Chrome 和 Firefox 的房子,所以使用 IE 来处理所有事情将是一个问题。

有没有人想出一个解决方案来制作 OpenSSL CA 证书及其签发的证书的签名证书在 Chrome 和 Firefox 上没有“无效的通用名称”错误,从而允许将内部证书视为“有效”?

certificate openssl ssl-certificate certificate-authority

4
推荐指数
1
解决办法
2895
查看次数

TLS1.3 不适用于带有 OpenSSL 1.1.1-pre9 的 nginx 1.15.2

尽管在我的配置文件中启用了最新的 nginx 和 OpenSSL,但它不会在我的服务器上产生 TLS1.3(www.baldeonline.com 供参考)。此外,我的 nginx 实例是在安装了 OpenSSL 1.1.1-pre9 的情况下编译的。

$ nginx -V 返回:

nginx version: nginx/1.15.2
built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
built with OpenSSL 1.1.1-pre9 (beta) 21 Aug 2018
Run Code Online (Sandbox Code Playgroud)

到目前为止,我看到的大多数教程都包括 CloudFlare,所以我怀疑它在这种情况下可以作为服务器和 CloudFlare 之间的 TLS1.2 以及 CloudFlare 和客户端之间的 TLS1.3 工作,尽管我没有任何具体的建议。

编辑

正如帕特里克提到的,运行命令:
$ openssl s_client -connect www.baldeonline.com:443

显示已启用 TLS1.3。TLS1.3 应在浏览器更新以完全支持最终 TLS1.3(2018 年 8 月 15 日)标准时与浏览器一起使用,而不仅仅是标准草案。

对于那些有兴趣的人:

https://wiki.openssl.org/index.php/TLS1.3#Current_status_of_the_TLSv1.3_standard

尽管最新的 1.1.1 版本支持最终标准版本,但其他支持 TLSv1.3 的应用程序可能仍在使用较旧的草稿版本。这是互操作性问题的常见来源。如果支持不同 TLSv1.3 草案版本的两个对等点尝试通信,则它们将回退到 TLSv1.2。

TLDR:如果您希望 TLS1.3现在与草案 28 一起使用,请使用 OpenSSL 1.1.1-pre8 https://fearby.com/article/enabling-tls-1-3-ssl-on-a-nginx-website-on -an-ubuntu-16-04-server-that-is-using-cloudflare/ …

ssl nginx web-hosting https openssl

4
推荐指数
1
解决办法
2174
查看次数

使用 nginx 和 TLS 1.3 获得完美的 SSL Labs 分数?

我创建了一个仅使用 TLS v1.2 在 Qualsys SSL Labs 上获得满分的 nginx 配置,我想尝试使用 TLS v1.2 和 v1.3 获得满分。

考虑这个 nginx.conf 版本的片段,它是 A+ 和 100% 分数的一部分:

ssl_protocols TLSv1.2;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
Run Code Online (Sandbox Code Playgroud)

它抱怨了几个密码套件,但它仍然给出了一个完美的分数:

在此处输入图片说明 在此处输入图片说明

现在,如果我将 TLS v1.3 作为唯一的配置更改添加到组合中,则分数会发生变化。

ssl_protocols TLSv1.2 TLSv1.3;
Run Code Online (Sandbox Code Playgroud)

密码强度得分为 90%: 在此处输入图片说明

我认为那些弱的 CBC 密码很生气:

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)   ECDH secp384r1 (eq. 7680 bits RSA)   FS   WEAK 256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)   ECDH secp384r1 (eq. 7680 bits RSA)   FS   WEAK    256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (0x6b)   DH 4096 bits   FS   WEAK   256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x39)   DH 4096 bits   FS   WEAK
Run Code Online (Sandbox Code Playgroud)

没有真正完美地删除 CBC …

security ssl nginx openssl debian-stretch

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

将 DER .cer 格式转换为 Base64 .CER

我已经在DERencodig 中导出了我的证书(扩展名为 .cer)。有没有办法在Base-64编码中转换这些证书(具有相同的扩展名)?谢谢

certificate openssl

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