标签: pkcs#12

在 Git-Bash-Windows 中 `openssl pkcs12` 不提示输入密码

SSL 证书颁发机构以格式向我发送了签名证书.pfx,并且受密码保护;所以我需要将其转换为.crt文件。

第一次尝试是openssl pkcs12 -in server.pfx -out server.crt -nokeys -clcerts简单地在 Git-Bash Windows 中调用 ; 但它永远等待,没有任何输出或提示。最终,我切换到 Linux (RHEL7),同样的命令运行正常。事实证明,在Linux中命令提示符为“ Enter Import Password:”;但是,在 Windows Git-Bash 中运行时,它缺少密码提示,并且将永远挂在那里。

我想知道是否有什么东西可以让它在 Windows Git-Bash 中工作,例如命令参数等,因为我的工作计算机仍在运行 Windows 操作系统。任何指示都将受到高度赞赏。

Linux 的截图:

[root@host]# openssl pkcs12 -in server.pfx -out server.crt -nokeys -clcerts
Enter Import Password:
MAC verified OK
[root@host]#
Run Code Online (Sandbox Code Playgroud)

windows openssl pkcs#12 git-bash

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

如何设置Java以使用Eclipse的用户特定证书?

我无法相信我是唯一一个遇到这个问题的人.我一直在谷歌搜索几个小时,没有运气.Java安全文档似乎没有彻底解决PKCS12证书.

我正在尝试为用户特定的PKCS12证书设置Java.除此之外,还将使用它,以便在Eclipse中,我可以访问通过证书进行身份验证的Trac服务器.我正在使用Trac Mylyn集成插件进行eclipse.

这是设置:

  • 用户主目录位于/ home
  • 多用户安装在/中央
  • 每个用户都有一个个人证书:〜/ user.p12
  • 个人证书的密码是:pass1234
  • 用户密码存储在〜/ password.txt的0400文件中
  • ca的只读信任存储位于:/central/ca.jks
  • 没有信任库的密码
  • JDK 1.6安装在/central/jdk_1.6.0
  • Eclipse 3.4安装在/central/eclipse_3.4.0
  • JAVA_HOME = /中央/ jdk_1.6.0
  • JAVA_HOME设置为JDK位置,因为Eclipse需要它
  • ECLIPSE_HOME = /中央/ eclipse_3.4.0
  • JRE住在$ JAVA_HOME/jre
  • 每个用户都有一个〜/ .java.policy文件
  • 有一个运行在https://trac.internal/trac的trac服务器
  • trac服务器使用证书进行身份验证

现在,我希望能够让每个用户只修改他们拥有的某个文件(例如〜/ .java.policy文件),并能够启动中央Eclipse应用程序并访问Trac存储库.看起来很简单.

现在,我可以得到这个工作的唯一方法是编辑$ ECLIPSE_HOME/eclipse.ini文件,并添加

-Djavax.net.ssl.keyStore="/home/user/user.p12"
-Djavax.net.ssl.keyStoreType="PKCS12"
-Djavax.net.ssl.keyStorePassword="pass1234"
-Djavax.net.ssl.trustStore="/central/ca.jks"
Run Code Online (Sandbox Code Playgroud)

好的,这有效,但有两个问题:

  • 每个用户都必须安装自己的ecipse.(或者可以从用户文件中读取它?)
  • 它特定于Eclipse,我最终希望将其作为Java配置.

另外,我记得有一段时间你可以编辑$ JAVA_HOME/jre/lib/security/java.security文件并添加

keystore=/home/user/user.p12
keystore.type=PKCS12
keystore.password=pass1234
truststore=/central/ca.jks
Run Code Online (Sandbox Code Playgroud)

但Eclipse似乎没有选择它.可能是因为我的JAVA_HOME指向JDK,而不是JDK的嵌套JRE?

我见过引用以下属性的Java PKCS#11 Reference:keyStoreURL ="NONE"keyStoreType ="PKCS11"keyStorePasswordURL = some_pin_url

我看到另一个引用说你可以编辑〜/ .java.policy文件来包含:

keyStore "file:///home/user/user.p12", "PKCS12", "SunJSSE";
keyStorePasswordUrl "file:///home/user/password.txt";
Run Code Online (Sandbox Code Playgroud)

但这也没有被提升.也许它实际上是有效的,并且由于java.security文件不起作用的原因而没有被读取,或者它可能根本不起作用.

我见过的一些系统属性:

javax.net.ssl.keyStore="/home/user/user.p12"
javax.net.ssl.keyStoreType="PKCS12"
javax.net.ssl.keyStorePassword="password"
javax.net.ssl.keyStoreProvider="SunJSSE"
javax.net.ssl.trustStore="/home/user/ca.jks"
javax.net.ssl.trustStoreType="JKS"
javax.net.ssl.trustStorePassword=""
javax.net.ssl.trustStoreProvider="Sun" …
Run Code Online (Sandbox Code Playgroud)

java eclipse security trac pkcs#12

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

如何使用java PKCS#12密钥库中的证书来加密和解密文件?

任何人都可以解释如何使用存储在java'PKCS#12`密钥库中的证书来加密和解密文件?

java cryptography pkcs#12

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

keytool -list显示p12密钥库的不同别名,具体取决于您是否提供密码

在特定的p12文件上真的很奇怪.

如果我跑

keytool -list -storetype pkcs12 -keystore my_debug_keystore.p12 -storepass debug
keytool -v -list -storetype pkcs12 -keystore my_debug_keystore.p12 -storepass debug
Run Code Online (Sandbox Code Playgroud)

我明白了

Alias name: 1
Creation date: Aug 17, 2014
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=sixminute, OU=, O=, C=IE
Issuer: CN=sixminute, OU=, O=, C=IE
Serial number: xxxxxxxxxxxxxxxxx
Valid from: Wed Nov 07 13:34:40 GMT 2012 until: Sun Nov 08 13:34:40 GMT 2037
Certificate fingerprints:
     MD5:  xxxxxxxxxxxxxxxxx
     SHA1: xxxxxxxxxxxxxxxxx
     Signature algorithm name: SHA1withRSA
     Version: 3
Run Code Online (Sandbox Code Playgroud)

Your …
Run Code Online (Sandbox Code Playgroud)

alias keytool pkcs#12 private-key

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

从p12/pem文件获取软件包ID

是否可以从AP12的p12/pem文件获取应用程序的包ID?

我有一个系统,用户可以上传他的推送证书(p12或pem),很高兴向他展示有关捆绑ID的信息,以便用户可以检查他上传的内容

pkcs#12 pem apple-push-notifications ios

9
推荐指数
1
解决办法
2473
查看次数

如何使用keytool更改PKCS12密钥库密码?

我无法使用keytool(java 8)更改PKCS密钥库密码.当我尝试更改密钥密码时:

keytool -keypasswd -keystore keystore.p12 -storetype PKCS12 -storepass oldpass -keypass oldpass -new newpass
keytool error: java.lang.UnsupportedOperationException: -keypasswd commands not supported if -storetype is PKCS12
Run Code Online (Sandbox Code Playgroud)

这意味着无法为PKCS12密钥库更改密钥密码.然后我尝试更改密钥库密码:

keytool -storepasswd -keystore keystore.p12 -storetype PKCS12 -storepass oldpass -new newpass
Warning:  Different store and key passwords not supported for PKCS12 KeyStores. Ignoring user-specified -new value.
keytool error: java.io.FileNotFoundException: keystore.p12 (Access is denied)
Run Code Online (Sandbox Code Playgroud)

这意味着,我们必须一起更改密钥库密码和密钥密码.但是没有命令可以改变它们.我能做什么?

keytool pkcs#12

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

如何在Scrapy中使用ssl客户端证书(p12)?

我需要使用格式为p12(PKCS12)的客户端证书文件与scrapy的网络服务器通信,有没有办法做到这一点?

python client-certificates pkcs#12 scrapy

8
推荐指数
1
解决办法
1032
查看次数

如何在Mac OSX上的Qt中使用pkcs12/pfx执行成功的SSL加密?

新手Qt和开发跨平台应用程序,需要来自服务器和客户端的SSL身份验证基于.pem的加密适用于Linux,Android,Windows.但是Mac OSX存在问题.我们的代码如下所示:

QFile privateKeyFile(":/Certificate.pem");  // --> has certificate + key
privateKeyFile.open(QIODevice::ReadOnly | QIODevice::Text);      
setLocalCertificateChain(QSslCertificate::fromPath(":/Certificate.pem", QSsl::Pem));
setPrivateKey(QSslKey(privateKeyFile.readAll(), QSsl::Rsa));
Run Code Online (Sandbox Code Playgroud)

在上面的代码privateKey().isNull()返回trueMac.当我们推荐这篇文章时,它说Mac不支持基于.pem的加密.

Secure Transport后端卷曲仅支持PKCS#12(P12)格式的客户端ID; 它不支持PEM格式的客户端ID,因为Apple不允许我们在不使用私有API的情况下以PEM格式从身份文件创建安全标识.我们无法使用私有API,因为Apple的任何应用商店都不允许使用私有API的应用.

由于理解有限,我解释说.pem对于与服务器进行SSL通信并不是一个好主意.如果这是错的,请阻止我!

因此,我们决定转移到所有平台的.pfx.我们已经有一个带密码的.pfx文件.我们将上面的代码转换为与.pfx兼容(即"Certificate.pfx",我们将此旧文件与"Certificate.pem"一起使用).而不是QSsl::Pem,我们试过QSsl::Der.但正如预期的那样,它没有用.但是,也没有加密错误,但我们确信我们做错了.:-)

我们引用了这篇文章并尝试从.pem重新生成.pfx,但这也没有帮助.
QSslCertificate :: importPkcs12无法解析PFX文件
在上述情况下,QSslCertificate::importPkcs12()原始.pfx文件返回false.即使我们从命令行生成一个新的.pfx,对于上面的函数也是如此.

问题:有人可以帮助确切地与服务器执行.pfx加密吗?
.pem身份验证也没关系.

注意:

  • 服务器支持.pfx和.pem.我们用常规的C OpenSSL库确认了这一点.但我们想用Qt实现它.
  • 如果它们适用于所有平台,我们对.pfx以外的格式开放

c++ macos qt openssl pkcs#12

8
推荐指数
1
解决办法
576
查看次数

如何/如何使用 python 和加密模块生成 PKCS#12 文件?

如何/如何使用 python 和加密模块生成 PKCS#12 文件?

使用上述模块为私钥生成 .pem 文件的内容非常简单:

keyPEMBytes = privateKey.private_bytes(
    encoding=serialization.Encoding.PEM,
    format=serialization.PrivateFormat.TraditionalOpenSSL,
    encryption_algorithm=serialization.NoEncryption())
Run Code Online (Sandbox Code Playgroud)

也很容易为关联的证书生成 .cer/.pem 文件的内容:

certBytes = certificate.public_bytes(encoding=serialization.Encoding.PEM)
Run Code Online (Sandbox Code Playgroud)

但是我需要将它们(和它们的链)整合到一个 .p12(PKCS12 文件)中。所述模块记录了如何解析/使用 PKCS12 格式,但没有(我能找到的)关于如何生成它们的信息。

不过,我对 PKI 内容的理解是偶然的,所以也许我只是没有在文档中搜索正确的关键字?

可以使用 Linux 在命令行中创建 .p12 文件

openssl pkcs12 -export -out myIdentity.p12 -inkey myPrivKey.pem -in myCert.crt -certfile myCertChain.crt
Run Code Online (Sandbox Code Playgroud)

所以我可以用 subprocess/cmd 来包装这样的调用,并用临时文件/管道来处理。不过,我希望将其全部保存在内存/python 中。

是否有我应该考虑的不同的 python TLS 库,可以做到这一点?

python pkcs#12 python-3.x python-cryptography

8
推荐指数
1
解决办法
3681
查看次数

在android中安装pcks12证书“密码错误”错误

当尝试将 pkcs12 证书文件导入 android 以便与 openvpn connect 应用程序一起使用时,系统会提示我输入密码。这是与该 pkcs12 文件相关的密码。我继续输入正确的密码,但收到“密码错误”消息。

为了确认不是文件有问题,我尝试在 Windows 计算机上安装相同的证书,接受相同的密码并且安装证书没有问题。

这是在运行 Android 11 安全更新 2022-02-05 的两部不同智能手机上进行测试的。

以前有人见过这个问题吗?我只能在网上找到类似的问题,没有解决。

android client-certificates incompatibility openvpn pkcs#12

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