标签: openssl

管理通配符的服务器证书

我有一个通配符证书*.example.com(由 GeoTrust 签名),并将在不同的服务器上托管大量应用程序实例,每个实例都在我的子域上。

我不愿意将我的 OpenSSL 私钥复制给每个客户。如何使用我的证书为各个子域创建子证书而不共享我的证书?

ssl https privacy openssl private-key

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

在 Heartbleed 错误后切换 SSL 提供程序而不是撤销

我有一个关于 Heartbleed 问题和 SSL 证书的问题。关于 Heartbleed,很多人说管理员应该撤销他们的证书并获得新的证书。我从 Startcom 获得了我的 SSL 证书,您可能知道他们会收取撤销费用。我对此非常生气,但知道我的问题: - 是否可以从 Startcom 切换到 Comodo 等其他提供商,获取新证书并更改我服务器上的证书?- 如果旧证书没有被撤销,会不会有任何问题?- 是否可以在我的服务器(Ubuntu 12.04)上“阻止”这些旧证书?

我不认为我的证书已被泄露,但这对我来说是一个严肃的话题。

security ssl openssl ssl-certificate heartbleed

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

如何防止从没有证书的域访问 https://?

我有这个设置

Server version: Apache/2.2.22 (Ubuntu)
OpenSSL 1.0.1c 10 May 2012
Run Code Online (Sandbox Code Playgroud)

一个 IP 连接多个域。因为example1.com我有一个签名的 SSL 证书,因此example1.com可以通过https://secure.example1.com

这也适用于example2.com(使用有效证书签名并通过 访问https://secure.example2.com

但是,example3.com没有绑定任何 SSL 证书,并且不应通过https(SSL 端口 443)访问。但是,当用户转到https://example3.com警告时会显示。在 Chrome 中它看起来像这样

您试图访问 example3.com,但实际上您访问了一个将自身标识为 secure.example1.com 的服务器。这可能是由服务器上的错误配置或更严重的事情引起的。您网络上的攻击者可能试图让您访问 example3.com 的虚假(并且可能有害)版本

如果你不理会警告,用户实际上会看到 secure.example1.com

VirtualHost 设置如下所示

<VirtualHost *:443>
        ServerName secure.example1.com
        DocumentRoot /var/www/blahblah
        SSLEngine on
        SSLCertificateFile /blahblah.crt
        SSLCertificateKeyFile /blahblah.key
        SSLCertificateChainFile /blahblah.pem
</VirtualHost>

<VirtualHost *:443>
        ServerName secure.example2.com
        DocumentRoot /var/www/blahblah
        SSLEngine on
        SSLCertificateFile /blahblah.crt
        SSLCertificateKeyFile /blahblah.key
        SSLCertificateChainFile /blahblah.pem …
Run Code Online (Sandbox Code Playgroud)

ssl https openssl apache-2.2

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

如何使用默认 CA 制作 openssl s_client

有没有办法配置 openssl,以便在未指定 -CAfile 选项的情况下运行 s_client 命令时使用一些默认 CA 文件(例如/etc/ssl/certs/ca-certificates.crt)?

ubuntu configuration openssl

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

我如何信任自签名证书?

我已经使用 openssl 生成了一个自签名证书 - 它完全是自签名的,而不是由自签名 CA 签名的。我已成功将其导入 nss 数据库以供浏览器使用。我现在想要在全球范围内信任它,这样 wget、curl 等工具就不会烦人了。

按照其他地方的说明,我将证书复制到 /etc/pki/ca-trust/source/anchors/ ,然后运行“update-ca-trust extract”。不幸的是,这似乎只适用于 CA 证书,不适用于单个证书。我怎样才能实现我所追求的目标?我知道我可以生成一个自签名 CA 并用它签署我的证书,但我有理由不这样做。

我这样生成了我的证书:

openssl genrsa -out server.key 4096
openssl req -new -key server.key -out server.crt
openssl x509 -sha256 -req -extensions v3_req -days 3650 -in server.csr -signkey server.key -out server.crt -extfile /etc/pki/tls/openssl.cnf
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

redhat openssl self-signed-certificate

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

使用 openssl 进行数字签名

我正在尝试使用 RSA 密钥对签署和验证签名。

这是我生成密钥对的方法(适用于加密/解密):

ssh-keygen -t rsa -f mykey -N '' -b 2048
mv mykey mykey-priv.pem
ssh-keygen -f mykey.pub -e -m pem > mykey-pub.pem ; rm -f mykey.pub
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试加密散列(使用私钥)然后验证它(使用公钥)时,它失败了:

openssl dgst -sha256 /etc/hosts > /tmp/hash 
openssl rsautl -sign -inkey mykey-priv.pem -in /tmp/hash -out /tmp/signature
openssl rsautl -verify -pubin -inkey mykey-pub.pem -in /tmp/signature
Run Code Online (Sandbox Code Playgroud)

最后一行让我无法加载公钥

我缺少什么?

如果相关,我正在使用 CentOS 3.9(旧的和遗留的,但我在这里别无选择)。

最后,这是一个示例密钥对:

-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA8nVhTRuinf4bGAda1ufF+VGG6f8kIFGt8/oCK74n9E6lXgpu
7KqeRzadaiONDh8GgQXn5bX9O2vOL+sL0xYa3W13eCoT7+4U51C/+8HqBxujRAVm
i4r/Ju+52kober+GSuIfoNF2nMA24EDy9tid0JgHcBJ0NTyhv6sPvNfcFR1Flbpo
LixTGCcn5S9A9NzJXiOkZ6abnxmyEmZsEaboowMay027GLWAw186GODbrGBByhjq
W6W6jcijb7EFdIYCEqtC6RsZmAiuPBK0LfW5078GE05oIZrG8GtQR8f7k8HDpEDF
+ZI53CZiLhrcXq6+tS4U57FqQs8ytUf6Gno7JwIDAQABAoIBAQCn7zd64gZLqmJ3
zThVG+obGyX4U3lhTVHQaD0ysR4ZcJPHxDA6ip7gsmprxr3/puupWD7b86a3jp8c
v4/MIEZxUk3qlDKFAAHIijy/kvuW+sSl65uwUZETFf5DvQq1hYzttxuzFwIx5kzc
HQBsi3MbtQGJ1a5Z5WofSMu4wEa289tAjHQiaXs8WEbgOctwS11lhFbDLwLagBFz
FL+J0C0oGjgNYaLJUihZKsMHCPZ0/LVFDcCus0ep7mQmvAEQ3FhSNNVakUL07XmM
MC6PTUxUvQa8vGDlRnXwGlIWVFNevvudvZjs02J7KWc3hUH9DqXiEm7cClJfoISB
HIq4WFvpAoGBAP0UHfCRyv4/2nZmizX05NG/qMNuz97G6Rir2ltw9wmrpvqK/n4r
d1JX19ECCx2nQM04C4Q7jQMmyqpF21Wf903PrGXPBa8j5XIDJy+YPC2RrifGsaHm
wN1EmYVfYZCphwmTIO2D05n/4Zkgze/KmhMnqpWn27De+LLfgcxsbET7AoGBAPVB
4RvpQCfKdP+ieKRopDE0v+UkdQCogdUz0rhwAdwzhXmUZIJ/Xb4a15DIN+zxKz2h
aiIJFkifKw5bQQQQjiIuRN73YpjQ6D9jWTdEs3E1zaWYFNPNAYqSi/1g/udgLL0N
RAOw5aNCDyOV4OZRESa9rhUUngfK4VrbqWIm1pLFAoGBAOBGWZn9uaTDNXjDuw6f …
Run Code Online (Sandbox Code Playgroud)

security linux encryption openssl

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

尝试安装 openssl 1.1.0 失败 make test

我正在尝试安装openssl 1.1.0.

我跑了 ./config && make && make test

我没有通过这个测试

../test/recipes/40-test_rehash.t ........... 1/5
#   Failed test 'Testing that we aren't running as a privileged user, such as root'
#   at ../test/recipes/40-test_rehash.t line 49.
# Looks like you failed 1 test of 5.
../test/recipes/40-test_rehash.t ........... Dubious, test returned 1 (wstat 256, 0x100) Failed 1/5 subtests
        (less 1 skipped subtest: 3 okay)
Run Code Online (Sandbox Code Playgroud)

我不认为我可以在没有 root 的情况下安装它。我错过了什么?

openssl

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

连接被拒绝 HTTPS 443 本地主机

我正在运行带有 Apache 2.4 的 Windows Server 2012 R2。由于某种原因,我在启用 HTTPS 时遇到问题。我以前做过这个,以前我所做的就是

1.) 通过取消LoadModule ssl_module modules/mod_ssl.sohttpd.conf 的注释来启用 Apache 内部的 SSL。

2.) 将条目添加到我的虚拟主机文件中。

3.) 重新启动 Apache 并通过 https 浏览到该站点

无论出于何种原因,它都不起作用。当我通过 http 浏览时,一切都按预期工作。但是,通过 https 无法连接。所以我进行了以下测试。

C:> telnet dev.mydomain.com 80 - 连接良好的 telnet

C:> telnet dev.mydomain.com 443 - 无法在端口 443 上打开与主机的连接。连接失败。

因此,我认为这是防火墙问题,因此添加了一条规则以允许端口 443。我什至尝试完全关闭防火墙。两者都不起作用。仍然出现连接失败的错误。

有人可以在这里指出我正确的方向吗?

谢谢你!

windows openssl windows-server-2012-r2 apache-2.4

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

在 nginx 中与通配符和根域共享两个 SSL 证书(同一服务器)

我已经为我的域结构购买了通配符证书和单个证书,即:

app.example.com => single
*.app.example.com => wildcard
Run Code Online (Sandbox Code Playgroud)

这两个路由应该指向同一服务器上的同一项目目录

注意:RapidSSL 支持说我必须购买两个,与经典域 example.com 不同,我的一个是 app.example.com,这样通配符就不会关心我的 3 位小数根

现在,我需要在 nginx 中设置两个不同的证书。我的默认值(适用于我的通配符),但不是“app.example.com”,因为不包括其 ssl 证书。

server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;

    ssl on;
    ssl_certificate /etc/ssl/ssl_certificate.cer;  // this is my wildcard cert
    ssl_certificate_key /etc/ssl/private.key;


    root /var/www/example/public;
    index index.php index.html index.htm;

    server_name .app.example.com;

    location / {
            try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
 }

 // And …
Run Code Online (Sandbox Code Playgroud)

ssl nginx openssl ssl-certificate wildcard-subdomain

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

在 ubuntu 上为 ssl 请求创建 csr 会出错

我正在尝试在我的网站上创建 ssl 认证。为了创建 csr ,我使用了命令:

openssl req –new –newkey rsa:2048 –nodes –keyout mydomain.key –out mydomain.csr
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误消息:

req:使用 -help 进行汇总。

我检查了是否安装了openssl,它给出了版本。所以,它被安装了。

我不知道该怎么办。我对此很陌生。这是我第一次尝试获取 ssl。所以,我很难过。每一个帮助表示赞赏。

ubuntu ssl openssl

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