标签: openssl

在 Ubuntu 服务器上保存 SSL 证书和私钥的最佳位置?

在 Ubuntu 上,用于签署证书(供 nginx 使用)的私钥的最佳位置似乎在 /etc/ssl/private/

这个答案补充说证书应该进入,/etc/ssl/certs/但这似乎是一个不安全的地方。做.crt文件需要保持安全或者他们认为公众?

ubuntu ssl debian openssl ssl-certificate

73
推荐指数
4
解决办法
12万
查看次数

使用可在 Chrome 58 中运行的 openssl 生成自签名证书

从 Chrome 58 开始,它不再接受依赖于Common Name以下内容的自签名证书:https : //productforums.google.com/forum/#! topic/chrome/zVo3M8CgKzQ;context-place = topicsearchin/chrome/category $3ACanary%7Csort:相关性%7Cspell:false

相反,它需要使用Subject Alt Name. 我之前一直在关注有关如何生成自签名证书的指南:https : //devcenter.heroku.com/articles/ssl-certificate-self,它工作得很好,因为我需要server.crtserver.key文件来完成我正在做的事情。我现在需要生成新的证书,其中包括SAN我所有的尝试都没有在 Chrome 58 上工作。

这是我所做的:

我按照上面提到的 Heroku 文章中的步骤来生成密钥。然后我写了一个新的 OpenSSL 配置文件:

[ req ]
default_bits        = 2048
distinguished_name  = req_distinguished_name
req_extensions      = san
extensions          = san
[ req_distinguished_name ]
countryName         = US
stateOrProvinceName = Massachusetts
localityName        = Boston
organizationName    = MyCompany
[ san ]
subjectAltName      = DNS:dev.mycompany.com
Run Code Online (Sandbox Code Playgroud)

然后server.crt使用以下命令生成:

openssl req …
Run Code Online (Sandbox Code Playgroud)

ssl openssl ssl-certificate chrome

70
推荐指数
5
解决办法
11万
查看次数

在 Ubuntu 服务器上安装 openssl-dev

为了编译NGinx需要安装opensslopenssl-dev(我正在遵循书籍指南)。

所以我这样做:

sudo apt-get install openssl openssl-dev
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误,告诉我无法找到openssl-dev. 也经过一番谷歌搜索,似乎libssl-dev等于openssl-dev,是真的吗?(在我的服务器上apt-get找到libssl-dev

这是我的服务器版本:2.6.32-22-server

欢迎任何帮助!

ubuntu openssl

66
推荐指数
3
解决办法
20万
查看次数

Heartbleed:HTTPS 以外的服务是否受到影响?

OpenSSL 'heartbleed' 漏洞 ( CVE-2014-0160 ) 影响服务 HTTPS 的网络服务器。其他服务也使用 OpenSSL。这些服务是否也容易受到类似心脏出血的数据泄漏的影响?

我特别想

  • sshd
  • 安全 SMTP、IMAP 等——dovecot、exim 和 postfix
  • VPN 服务器——openvpn 和朋友

至少在我的系统上,所有这些都链接到 OpenSSL 库。

security openssl heartbleed

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

通过 OpenSSL 从 P7B 转换为 PEM

在 Ubuntu 上,我无法成功使用 openssl 转换证书。

vagrant@dev:/vagrant/keys$ openssl pkcs7 -print_certs -in a.p7b -out a.cer 
unable to load PKCS7 object <blah blah>:PEM
routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: PKCS7
Run Code Online (Sandbox Code Playgroud)

你以前见过这个错误吗?

openssl

61
推荐指数
5
解决办法
18万
查看次数

使用 netcat (nc) 连接到 HTTPS

我正在为我的大学课程做家庭作业。任务是使用nc (netcat)在 HTTPS 上获取网页。

要通过 HTTP 获取页面,我可以简单地执行以下操作:

cat request.txt | nc -w 5 <someserver> 80
Run Code Online (Sandbox Code Playgroud)

request.txt我有一个 HTTP 1.1 请求

GET / HTTP/1.1
Host: <someserver>
Run Code Online (Sandbox Code Playgroud)

现在......这工作得很好。然而,挑战是 - 获取使用 HTTPS 的网页?

我得到了这样的页面证书。这就是我目前陷入困境的地方

openssl s_client -connect <someserver>:443
Run Code Online (Sandbox Code Playgroud)

http https openssl netcat

49
推荐指数
3
解决办法
10万
查看次数

如何拆分 PEM 文件

注意:这不是一个真正的问题,因为我已经找到了答案,但是由于我在这里不容易找到它,所以我将其发布,以便它可以使其他人受益。

问题:如何读取连接的 PEM 文件作为 apache/mod_ssl 指令SSLCACertificateFile使用的文件?

答案(原文)来源):

cat $file|awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
Run Code Online (Sandbox Code Playgroud)

如果末尾有一个空行,这可能会留下一个空文件,例如openssl pkcs7 -outform PEM -in my-chain-file -print_certs. 为防止出现这种情况,请在打印前检查行的长度:

cat $file|awk 'split_after==1{n++;split_after=0}
   /-----END CERTIFICATE-----/ {split_after=1}
   {if(length($0) > 0) print > "cert" n ".pem"}' 
Run Code Online (Sandbox Code Playgroud)

回答 29/03/2016

按照@slugchewer answercsplit可能是一个更清晰的选择:

csplit -f cert- $file '/-----BEGIN CERTIFICATE-----/' '{*}'
Run Code Online (Sandbox Code Playgroud)

shell openssl awk x509

49
推荐指数
5
解决办法
10万
查看次数

如何从 pkcs12 容器中删除私钥密码?

  1. 我使用 Chrome 的 SSL/export 命令提取了证书。
  2. 然后将其作为输入提供给 openvpn - 在 openvpn 的配置中:
    pkcs12 "path/to/pkcs12_container"
  3. 调用openvpn ~/openvp_config它时要求输入私钥密码(我在使用 Chrome 导出时输入):
    Enter Private Key Password:...
  4. 我想删除此密码请求。

问题:如何从pkcs12中删除私钥的密码?

也就是说,创建不需要密码的 pkcs12 文件。

(似乎一年前我已经以某种方式这样做了,现在忘记了。该死的。)

openssl ssl-certificate

47
推荐指数
3
解决办法
17万
查看次数

阻止 apache 每次重新启动时要求输入 SSL 密码

使用来自该站点的说明但稍微改变它们我使用 -newca 创建了一个 CA,我复制cacert.pem到我的 comp 并在 IE 中作为受信任的发行者导入。然后我做了 -newreq 和 -sign (注意:我做/full/path/CA.sh -cmd和不做sh CA.sh -cmd)并将证书和密钥移动到 apache。

我在 IE 中访问了该站点并使用 .NET 代码,它看起来很受信任,很棒(除非我在前面写了 www. 这是预期的)。但是每次我重新启动 apache 时,我都需要输入我的网站密码?

我怎样才能做到这样我就不需要输入密码?

ssl openssl ssl-certificate init.d apache-2.2

46
推荐指数
2
解决办法
12万
查看次数

PEM ssh 密钥的指纹

我有一个 PEM 文件,我将它添加到正在运行的 ssh-agent 中:

$ file query.pem
query.pem: PEM RSA private key

$ ssh-add ./query.pem
Identity added: ./query.pem (./query.pem)

$ ssh-add -l | grep query
2048 ef:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX ./query.pem (RSA)
Run Code Online (Sandbox Code Playgroud)

如何直接从文件中获取密钥的指纹(我在 ssh-agent 中看到的)?我知道ssh-keygen -l -f some_key适用于“普通”ssh 密钥,但不适用于 PEM 文件。

如果我在 .pem 文件上尝试 ssh-keygen,我会得到:

$ ssh-keygen -l -f ./query.pem                                             
key_read: uudecode PRIVATE KEY----- failed
key_read: uudecode PRIVATE KEY----- failed
./query.pem is not a public key file.
Run Code Online (Sandbox Code Playgroud)

这个键开始于:

-----BEGIN RSA PRIVATE KEY-----
MIIEp.... etc.
Run Code Online (Sandbox Code Playgroud)

与“常规”私钥相反,它看起来像:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: …
Run Code Online (Sandbox Code Playgroud)

certificate ssh openssl fingerprint

40
推荐指数
3
解决办法
8万
查看次数