我使用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) 我正在尝试通过 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) 我有一个 centos 7 服务器。我使用 IUS 存储库 ( https://ius.io/ )从 apache 2.4.6 切换到 apache 2.4.25 。我的目标是用一个 IP 支持多个 SSL 证书。
我已经安装:
apache 现在是否启用了 SNI?
或者我是否必须像文档(https://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI)一样使用 ./configure --with-ssl=/path/to/your/openssl 从头开始构建它?
感谢您的时间。
我正在尝试保护一个子域:
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 吗?
我有一个来自 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中的错误吗?我错过了一个参数吗?
我需要在本地网络中使用 SSL,我想避免浏览器无效证书错误。
我的想法是生成自签名证书,然后使用证书锁定(HPKP)来告诉浏览器只有这个证书可以信任?
我目前正在探索与这个想法相关的所有选项。我已经使用自签名证书和带有值的 HPKP 标头(Public-Key-Pins)进行了测试,例如:
"pin-sha256="somedataencodedbase64=";pin-max-age=10;includeSubDomains"
浏览器不接受它作为安全。我仍然需要完成这个测试(使用不同的自签名证书,我需要确保 SPKI 计算正确......
现在的问题是:
为给定的本地主机名(例如 mylocalserver)颁发的自签名证书是否有效并固定在服务器响应中?这甚至会起作用吗?
证书锁定是否适用于本地主机名(这意味着,它仅适用于域名)?
固定证书是否必须首先有效或由 CA 推动(这意味着不能固定自签名证书 - 除非它们被添加到客户端的信任存储)?
在本地拥有有效 SSL 的最简单的另一种方法是什么,因此我不需要配置客户端(客户端信任存储)?
我们可以将证书固定视为可信 CA 的替代方案吗?我在某处读到它只是另外所以这意味着证书链首先需要有效,然后你可以固定它?
我也越来越多地思考这个想法是否可行。因为那样我们会看到更多地使用这种技术。每个人都会生成自签名证书并固定它......并在CA可信证书上节省几美元......或者我对整个概念的错误或正确?
我们在混合 Windows / Linux 环境中运行由 Ubuntu 16.04 服务器和用于内部资源的 OpenSSL 后端提供支持的内部证书颁发机构。
该 CA 与一些内部网站一起使用,试图为内部网站、软件部署等提供有效、可信的站点证书。我们有一个问题。
CA 根证书由 GPO 推送到我们所有的 Windows 系统,或者手动安装。但是,该 CA 签署的每个证书最终都会出现一些问题 - Chrome 和 Firefox 都表明该证书的通用名称无效,而其他实用程序(例如此处的 XMPP 服务器)无法验证该证书,即使 CA 证书在信托商店。
只有 Internet Explorer 遵守该证书。不幸的是,我们是一个 Chrome 和 Firefox 的房子,所以使用 IE 来处理所有事情将是一个问题。
有没有人想出一个解决方案来制作 OpenSSL CA 证书及其签发的证书的签名证书在 Chrome 和 Firefox 上没有“无效的通用名称”错误,从而允许将内部证书视为“有效”?
尽管在我的配置文件中启用了最新的 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/ …
我创建了一个仅使用 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)
我认为那些弱的 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 …
我已经在DERencodig 中导出了我的证书(扩展名为 .cer)。有没有办法在Base-64编码中转换这些证书(具有相同的扩展名)?谢谢
openssl ×10
ssl ×5
certificate ×4
nginx ×2
apache-2.4 ×1
hpkp ×1
https ×1
mod-ssl ×1
security ×1
sni ×1
web-hosting ×1
x509 ×1