标签: openssl

./configure 期间缺少 OpenSSL。怎么修?

我试图安装 node.js 并发现在./configure.

我该如何解决?这是强制性步骤吗?该--without-ssl选项会解决问题吗?

# ./configure

Checking for gcc                         : ok
Checking for library dl                  : not found
Checking for openssl                     : not found
Checking for function SSL_library_init   : not found
Checking for header openssl/crypto.h     : not found
/home/ec2-user/node-v0.6.6/wscript:374: error: Could not autodetect OpenSSL 
                                               support.

Make sure OpenSSL development packages are installed. Use configure --without-ssl 
to disable this message.
Run Code Online (Sandbox Code Playgroud)

linux openssl

103
推荐指数
3
解决办法
30万
查看次数

避免密码提示密钥和 DN 信息提示

我正在使用以下代码生成密钥:

apt-get -qq -y install openssl;
mkdir -p /etc/apache2/ssl;
openssl genrsa -des3 -out server.key 1024;
openssl req -new -key server.key -out server.csr;
cp server.key server.key.org;
openssl rsa -in server.key.org -out server.key;
openssl x509 -req -days 12000 -in server.csr -signkey server.key -out server.crt;
mv server.crt  /etc/apache2/ssl/cert.pem;
mv server.key  /etc/apache2/ssl/cert.key;
rm -f server.key.orig;
rm -f server.csr
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. 如何跳过密码提示?我这样做是否相当安全?(因为它不应该是彻头彻尾的愚蠢,因为任何人都应该能够破解证书)

  2. 如何避免提示输入国家/地区名称、组织等。我希望我可以在命令提示符下提供它们(手册页仅显示 OpenSSL 的顶级选项)

prompt openssl ssl-certificate x509

98
推荐指数
3
解决办法
11万
查看次数

如何在命令行中使用密码参数到 openssl 进行解密

因此,通过命令行参数传递密码并不是最安全的做法。也就是说,openssl 的文档让我对如何将密码参数传递给 openssl 命令感到困惑。

这就是我想要做的

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d

然后提示输入用于解密的密码。如果我只是想将密码提供给命令而不尝试将密码回显到文件,我搜索了 openssl 文档和互联网以尝试找到答案。我尝试添加-pass:somepassword-pass somepassword带引号和不带引号都无济于事。

我终于找到了答案,并在其他一些论坛上看到人们提出了类似的问题,所以我想我会在这里为社区发布我的问题和答案。

注意:我使用的是 openssl 版本 0.9.8y

linux command-line openssl

87
推荐指数
3
解决办法
15万
查看次数

如何使用 ssh-rsa 公钥加密文本?

所以,场景是:鉴于我是鲍勃,我想为爱丽丝加密一些消息。我唯一的公钥是她的ssh-rsaid_rsa.pub 像这样:

SSH-RSA AAAAB3NzaC1yc2EAAAABIwAAAQEAyb + qaZLwgC7KAQJzYikf3XtOWuhlMXVv2mbTKa5dp0sHPRd2RaYnH8ZRkt7V8bjqct1IHGCuxI8xyoEp4at3FHe6j9RfWiarc1ldLUCmTtryI0GGpRs6Zpvqdtpcq / 1NCIYtUQAvsImyEFCtqmB2suDo1ZSllZQ0x9TCKHdCANYIOeaniuFzR57POgE3vxk / r6PO24oy8BIWqxvi29r0n1LUigVBJ7CmMHuzb4 / + i1v6PxV1Lqnj6osPP9GpXpsh8kLUCby / KcmcryWNdSP0esyCdDxkA5hlIuk8qL1vzsyPluUQuc0BEHu6nuw8WQlCF1mFFxcpJL + MhWEr01WIIw == sikachu@Sikachus-Notebook.local

那么,有没有办法使用这个公钥加密一个字符串,这样她就可以使用她的私钥id_rsa(从 生成ssh-keygen)来解密消息?

(我知道如果您正在使用.pem密钥对文件,则可以立即使用。如果您能告诉我如何将其转换为openssl支持的格式,那也很棒!)

谢谢!

encryption openssl

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

openssl“无法在配置中找到‘distinguished_name’”

我收到以下错误openssl req

unable to find 'distinguished_name' in config
problems making Certificate Request
41035:error:0E06D06C:configuration file routines:NCONF_get_string:no value:/SourceCache/OpenSSL098/OpenSSL098-52.30.1/src/crypto/conf/conf_lib.c:329:group=req name=distinguished_name
Run Code Online (Sandbox Code Playgroud)

我的理解是,这是它找不到的“主题”……但是,我说明的是:

openssl req -new \
    -key "$PRIVATE_KEY" \
    -sha256 \
    -config "$OPTIONS_FILE" \
    -subj "/C=US/ST=California/L=San Francisco/O=ACME, Inc./CN=*.*.$DOMAIN/" \
    -out "$CSR_FILENAME"
Run Code Online (Sandbox Code Playgroud)

手册的唯一建议是配置文件不存在;我可以cat "$OPTIONS_FILE",所以它肯定存在,并且该错误之前没有手册指出的错误,如果是这种情况,它将在此之前出现,所以我很确定会openssl看到配置文件。

我的配置文件包含以下内容:

[req]
req_extensions = v3_req

[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = *.*.example.com 
Run Code Online (Sandbox Code Playgroud)

...这几乎就是文档中的示例 …

openssl

50
推荐指数
3
解决办法
11万
查看次数

Heartbleed 会影响 ssh 密钥吗?

最近的 Heartbleed 错误是否会影响我生成的 ssh 密钥并用于通过 Github、Heroku 和其他类似站点推送/拉取代码?

我需要更换我一直在使用的钥匙吗?

ssh openssl heartbleed

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

创建带有 subjectAltName 的自签名证书以修复 Chrome 58+ 中的 [missing_subjectAltName]

我试图为创建一个自签名证书localhost包含subjectAltName到满足的Chrome 58+:

createcertificate.sh

#!/usr/bin/env bash
filename="$1server"
openssl req -new -sha256 -nodes -out ./../nginx/ssl/${filename}.csr -newkey rsa:2048 -keyout ./../nginx/ssl/${filename}.key -config <( cat ${filename}_csr.txt )
openssl x509 -req -in ./../nginx/ssl/${filename}.csr -CA ~/ssl/rootCA.pem -CAkey ~/ssl/rootCA.key -CAcreateserial -out ./../nginx/ssl/${filename}.crt -days 500 -sha256
Run Code Online (Sandbox Code Playgroud)

server_csr.txt

[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn

[ dn ]
C=US
ST=New York
L=Rochester
O=End Point
OU=Testing Domain
emailAddress=your-administrative-address@your-awesome-existing-domain.com
CN = localhost

[ req_ext ]
subjectAltName = …
Run Code Online (Sandbox Code Playgroud)

certificate ssl openssl

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

无法将公钥导入 OSX 钥匙串

我创建了几个自签名 S/MIME 证书(使用 OSX Keychain & OpenSSL),然后将它们导出到 3 个文件中:

  • 证书 (.cer)
  • 私钥 (.p12)
  • 公钥 (.pem)

当尝试将这些导入回另一台 Mac 时,证书和私钥导入没有任何问题。但是无法导入公钥。

相反,我收到以下错误消息:

发生了错误。无法导入项目。

本次内容无法检索

导入公钥时 OSX 钥匙串错误的屏幕截图

如何导入公钥?是否应该将其转换为另一种格式以进行导入?

keychain openssl public-key private-key macos

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

OpenSSL CA keyUsage 扩展

我想建立一个证书链,在顶部有一个自签名的“根”CA,用于签署子 CA,然后可以签署客户端和服务器证书。设置时openssl.cnf,我注意到一个keyUsage参数,显然需要将其设置为应该使用的任何密钥。虽然记录了参数值,但我找不到有关在某些情况下使用哪些参数值的任何信息。

这些keyUsage值是什么意思,在以下情况下我应该使用什么?

  • 自签名根 CA
  • 中间 CA(可以签署其他 CA)
  • 中间 CA(不能签署其他 CA)
  • 非 CA 证书

此外,是否需要使用某些值指定其他扩展名,例如nsCertType?

certificate ssl openssl

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

创建自签名证书时如何将“国家/地区名称”之类的参数传递给 OpenSSL?

我可以使用此命令创建自签名证书

openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout server.key -out server.crt
Run Code Online (Sandbox Code Playgroud)

但是是否可以将“国家名称”、“州或省名称”等参数传递给 OpenSSL 以自动执行此过程?

certificate openssl

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