我试图wget通过以下方式在 Linux 中从源代码安装:
./configure --with-ssl=openssl
Run Code Online (Sandbox Code Playgroud)
但它返回给我:
configure: error: --with-ssl=openssl was given, but SSL is not available.
Run Code Online (Sandbox Code Playgroud)
如果我做:
root@qemux86:/mnt/sdc2/wget-1.16# which openssl
/mnt/sdc2/miniconda/bin/openssl
Run Code Online (Sandbox Code Playgroud)
所以OpenSSL肯定已经安装了。为什么还是说 SSL 不可用?
谁能发现为什么这个命令给出“iv undefined”?
>openssl.exe enc -d -aes-256-ecb -K 8000000000000000000000000000000000000000000000000000000000000001 -in ex3.8_C.bin -out plaintext.bin -nopad
iv undefined
Run Code Online (Sandbox Code Playgroud)
另请参阅基本 AES 解密问题
我不清楚第二个命令的作用
openssl genrsa -des3 -passout pass:123 -out private/server.key 2048
openssl rsa -passin pass:123 -in private/server.key -out private/server.key
Run Code Online (Sandbox Code Playgroud)
第一个生成使用 des3 和 pass 123 加密的 RSA 密钥。第二个怎么样?它会删除密码吗?
谢谢你,
出于某种原因,我似乎无法找到这个基本问题的答案。我收到了一封加密的 S/MIME 电子邮件,我想使用openssl smime. 但是,我认为我无法提供正确格式的密钥。这就是我所做的:
smime-ok.txtmyself.p12myself.cer然后我尝试了
openssl smime -decrypt -in smime-ok.txt -recip myself.p12
Run Code Online (Sandbox Code Playgroud)
但我得到
unable to load certificate
37740:error:0906D06C:PEM routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.7/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE
Run Code Online (Sandbox Code Playgroud)
我还尝试了-inkey myself.p12 -recip myself.cer更多的变体,但这并没有什么区别。我猜想我的密钥文件没有被读取,或者没有正确读取,因为也没有提示我输入密码。
我怀疑我可能基本上误解了如何使用openssl smime.
我正在尝试从通过此命令生成的私钥中获取公钥:
openssl genpkey -algorithm Ed25519 -out ed25519key.pem
Run Code Online (Sandbox Code Playgroud)
遵循此文档:https : //github.com/openssl/openssl/blob/master/doc/man1/genpkey.pod
但是我迷失了试图弄清楚如何从私钥生成公钥。另外,有没有办法指定密钥的长度?
我尝试使用根 CA 签署中间证书的 CSR,OpenSSL 要求我提供密码,然后什么也没有发生。没有错误消息,也没有生成证书。它失败的命令是:
openssl ca -config rootca.cnf -extensions v3_intermediate_ca ^
-days 730 -notext -md sha256 ^
-in C:/Certificates/IntermediateCA/csr/intermediate.csr.pem ^
-out C:/Certificates/IntermediateCA/public/intermediate.cert.pem
Run Code Online (Sandbox Code Playgroud)
openssl 响应:
Enter pass phrase for C:/Certificates/RootCA/private/rootca.key.pem:
Run Code Online (Sandbox Code Playgroud)
当我输入密码时,之后什么也没有发生。
这个问题的一个好的答案有两个部分:
额外细节
不确定是否需要这样做,但这里有一些我用来生成中间 CA 其余部分的附加命令:
创建中间CA私钥:
openssl genrsa -aes256 -out private/intermediate.key.pem 4096
Run Code Online (Sandbox Code Playgroud)
创建中级 CSR:
openssl req -config intermediateca.cnf -new -sha256 ^
-key private/intermediate.key.pem ^
-out csr/intermediate.csr.pem
Run Code Online (Sandbox Code Playgroud)
rootca.cnf(重要部分):
[ CA_default ]
dir = C:/Certificates/RootCA
...
[ policy_strict ]
countryName = match
stateOrProvinceName = match
localityName = match
organizationName …Run Code Online (Sandbox Code Playgroud) 我使用命令行使用对称密钥加密了一个文件openssl,然后使用 RSA 公钥加密了该对称密钥。我尝试了一些加密和解密,然后我不小心用我的 RSA 私钥加密了对称密钥。加密继续进行,没有错误。
所以现在我无法解密对称密钥来访问我的文件。有没有openssl用公钥解密的命令?
我用于加密的命令行:
openssl rsautl -encrypt -inkey private_key.pem -in symmKey.key -out symmKey.enc
Run Code Online (Sandbox Code Playgroud)
对于解密我尝试使用:
openssl rsautl -decrypt -inkey public_key.pem -pubin -in symmKey.enc -out symmKey.key
Run Code Online (Sandbox Code Playgroud)
我还尝试验证symmKey.enc:
openssl rsautl -verify -inkey public_key.pem -pubin -in symmKey.enc -out symmKey.key
Run Code Online (Sandbox Code Playgroud)
但后来我收到以下错误:
RSA operation error
5968:error:0407008A:rsa routines:RSA_padding_check_PKCS1_type_1:invalid padding:crypto\rsa\rsa_pk1.c:67:
5968:error:04067072:rsa routines:rsa_ossl_public_decrypt:padding check failed:crypto\rsa\rsa_ossl.c:586:`
Run Code Online (Sandbox Code Playgroud) 这是在 OS X 上。我使用以下命令加密了一个文件:
openssl enc -aes-256-cbc -salt -in secrets.json -out secrets.json.enc
Run Code Online (Sandbox Code Playgroud)
我被要求输入密码。然后我可以解密它
openssl enc -d -aes-256-cbc -in secrets.json.enc -out secrets.json
Run Code Online (Sandbox Code Playgroud)
系统要求我输入密码,我使用了刚才设置的密码。解密成功。
然而,我的同事复制了这个文件,却发现他无法用相同的命令和密码解密它。这是他所看到的:
10:59 $ openssl enc -d -aes-256-cbc -in secrets.json.enc -out secrets.json
enter aes-256-cbc decryption password:
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
bad decrypt
4611925440:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:crypto/evp/evp_enc.c:570:
Run Code Online (Sandbox Code Playgroud)
我的 OS X 有
11:31 $ openssl version
LibreSSL 2.2.7
Run Code Online (Sandbox Code Playgroud)
他的 OS X 有
11:29 $ openssl version
OpenSSL 1.1.1b 26 Feb 2019 …Run Code Online (Sandbox Code Playgroud) 使用 openssl 生成密钥时,可以选择使用密码对生成的密钥进行加密。
openssl genpkey -algorithm rsa -out rsa.key -aes-128-cbc
Run Code Online (Sandbox Code Playgroud)
在此示例中,CBC 模式下的 AES 128 用于加密文件“rsa.key”中生成的密钥。
如果想要将密钥与 openssl 一起使用,则必须提供密码。
openssl pkcs8 -in rsa.key
Enter Password:
Run Code Online (Sandbox Code Playgroud)
openssl 会以某种方式检测密钥加密算法。openssl 是否可以打印出用于加密密钥的加密算法?
openssl ×10
encryption ×3
aes ×1
certificate ×1
compile ×1
decryption ×1
linux ×1
rsa ×1
smime ×1
ssl ×1
windows ×1
x509 ×1