问题标签 [pem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7306 浏览

c - 如何使用 openSSL 函数验证 PEM 证书的密钥长度

如何验证以这种方式生成的 PEM 证书的密钥长度:

我需要的是一个使用 OpenSSL 过程的 C 函数,它对 PEM 证书执行验证(我将它用于 lighttpd HTTPS 服务器),并返回存储在证书中的密钥的长度(在本例中为 1024)。

0 投票
1 回答
377 浏览

security - 去保护的 .p12 私钥文件

我使用 apn node.js 模块发送 Apple 推送通知,但它不起作用。

在配置中,我使用 .pem 格式的密钥和证书,但密钥受到保护。我从 key.p12 文件创建了这个 key.pem 文件。
我想解除对密钥的保护,因此不必输入密码。
我没有找到如何做到这一点,有什么想法吗?

0 投票
2 回答
6195 浏览

c# - 如何在 c# 中使用 bouncycastle 将 pem 公钥转换为 rsa 公钥?

我有一个 pem公钥,我想转换为 xml 格式的公钥或 AsymmetricKeyParameter。

我可以在 C# 中使用 bouncyCastle 中的 PemReader将 pem私钥转换为Public/Private xml 格式或非对称密钥参数。但是当在 PemReader 中使用 Pem公钥时,我收到错误。

请帮我。
我的问题还有什么解决方案?

0 投票
1 回答
1004 浏览

python - 创建一个可以用 Python TLSLite parseAsPublicKey 加载的公钥

我想从 Python 的 TLSlite 库中加载一个公钥。

只要格式是通用的,就可以以我们喜欢的任何方式创建密钥 - 到目前为止,我使用的是使用 openssl 命令行工具创建的 PEM 密钥:

接着:

结果如下:

密钥将加载:

但是,这会因 SyntaxError 而失败。剥离换行符,仅使用破折号之间的字符串部分等都失败。

我很高兴使用不同的通用密钥格式,但是我需要 TLSLite 或其他纯 Python 解决方案才能读取文件,因为我使用的是 Google AppEngine。

0 投票
5 回答
58572 浏览

java - 使用或不使用 OpenSSL 将 SSL .pem 转换为 .p12

.pem我得到需要转换为文件的外部文件.p12- 我在此过程中添加了用户名和密码。(我需要这样做才能利用第三方 API。)

使用openssl,命令是...

我可以从终端会话运行它,它运行良好。

但是,我需要经常这样做,并编写了一个 Java 类来处理这个以及更多(我的应用程序主要.jsp使用 Tomcat 和 Apache)。当我尝试使用 Java 从 Java 运行相同的命令时Runtime.exec,我得到了可怕的“无法写入‘随机状态’”错误(使用 OpenSSL,“无法写入‘随机状态’是什么意思?)。

我假设不同之处在于,当我从 Java 运行时,用户不是“root”。

那么,有没有更好的方法来使用 Java 库而不是执行命令行程序(即 openssl)从 pem 转换为 .p12?

否则,我想我需要在我的服务器上进行一些配置。我在服务器上的任何地方都找不到任何.md文件。唯一的openssl.cnf文件位于一个奇怪的目录 ( /etc/pki/tls) 中。我需要在openssl.cnf其他地方创建一个新文件吗?

0 投票
1 回答
5031 浏览

c - 使用 OpenSSL 将 PEM 文件中的证书链加载到 STACK_OF(X509)*

使用 c 中的 OpenSSL 库,将完整的证书链从 PEM 文件加载到内存中的最佳方法是什么?输入是一个连接了 1..n 个证书的 PEM 文件,输出应该是STACK_OF(X509)*..

对于单个证书,加载它们的最简单方法如下:

(为清楚起见,省略了错误处理、资源释放和引用计数;使用 C99 语法;“easy”表示“避免较低级别的 BIO 和 ASN.1 API”)

但是,对于完整的证书链,SSL_CTX_use_certificate_chain_file()可用于将它们加载到 中SSL_CTX,然后可以使用 检索第一个证书SSL_get_certificate(),但似乎没有API 函数SSL可以从上下文中检索证书链的其余部分。

那么从文件加载证书链的最佳方法是什么?

0 投票
1 回答
8572 浏览

python - PyOpenSSL 将证书对象转换为 .pem 文件

我想通过套接字将证书从“证书颁发机构”发送到节点。我有一个使用此示例创建的证书 https://skippylovesmalorie.wordpress.com/2010/02/12/how-to-generate-a-self-signed-certificate-using-pyopenssl/ 我如何将其转换为 . pem 文件,因此我可以通过套接字将其作为字符串发送,然后在另一端将其转换回 .pem 并使用 get_certificate 从中提取此证书。 Python:使用 pyOpenSSL.crypto 读取 pkcs12 证书 这可能是一种很老套的方法,但我想为自己简化一下。(或不)

我正在重新提出这个人的问题没有回答 如何将 PyOpenSSL 对象转换为 PEM 编码的字符串?

0 投票
1 回答
7311 浏览

xcode - 无法连接到 ssl://gateway.push.apple.com:2195(连接超时)

Apple 推送通知让我快疯了!我按照Ray Wanderlich教程开发了我的应用程序和测试通知,一切正常,直到我将文件 .pem 更改为发行版,并将连接字符串从 gateway.sandbox.push-apple.com 更改为 gateway.push-apple。 com。

现在,如果我尝试发送消息,服务器会返回

php 文件和 .pem 文件位于 TMDHosting 上:我尝试询问他们是否关闭了端口号 2195,因为谷歌搜索我发现错误意味着端口已关闭。

不过,我不明白该错误是与证书相关还是与服务器相关。

奇怪的是,如果我按照终端程序测试 .pem 文件,一切似乎都正常

这让我认为这不是 .pem 问题......

我错了吗?

我已经在这里阅读了所有类似的问题,并尝试将端口号从 2195 更改为 30,但没有任何变化。提示?

编辑:我发现似乎等于我的问题:TMDHosting 告诉我

...您位于共享托管环境下,无法为您打开端口。但是请注意,您在端口 2195 上建立连接的地址与我们的服务器无关。换句话说,您正在尝试在端口 2195 上建立与远程服务器的连接。为了建立与上述指定端口的连接,您应该确保该端口已为远程服务器上的传入连接打开,而不是在服务器上您在我们这里的帐户所依赖的。

我需要一个 VPS 吗?

编辑2

在我遵循的教程中,我发现

..您将需要一个连接到互联网的服务器。推送通知始终由服务器发送。对于开发,您可以将 Mac 用作服务器(我们将在本教程中使用),但对于生产用途,您至少需要 VPS(虚拟专用服务器)之类的东西。便宜的共享主机帐户还不够好。您需要能够在服务器上运行后台进程、安装 SSL 证书并能够在某些端口上进行传出 TLS 连接。大多数共享主机提供商不允许您这样做,尽管如果您提出要求,他们可能会这样做。不过,我真的推荐使用像 Linode 这样的 VPS 主机。

最后,我认为我确实需要一个 VPS。你能确定吗? 但是为什么如果我使用沙盒服务器发送推送通知,它可以在没有 VPS 的情况下正常工作?

最后更新:(希望对某人有所帮助)似乎有一个错误,因为正确的是我无法从我的主机(TMDHosting)向沙箱或生产服务器发送推送通知:我的共享主机没有 2195端口开放。更改提供者:一切正常。

0 投票
1 回答
786 浏览

pem - 为 Google 管理域创建 .pem 文件

我用了这段代码

# 生成 RSA 密钥和证书

从这里: http ://code.google.com/apis/gdata/docs/auth/authsub.html#Registered

谷歌从他们自己的 ManageDomains 网站链接到此。我已经使用了代码,并将 pem 文件上传到了 Google。当我测试它时,它给了我这个错误:

SyntaxError:缺少 PEM 前缀

谁能指出我正确的方向,我已经浪费了几个小时。谢谢!

0 投票
2 回答
57953 浏览

iphone - 如何使用终端将 .p12 文件转换为 .pem 文件?

我已经有一个development certificate in apple developer portal. 我正在开发一个 iPhone 应用程序,我想在这个应用程序中集成 Apple 推送通知。我创建了一个new App ID使用现有证书和enabled the Push Notification in this app id. 我创建了一个new Provisioning Profile使用新创建的应用程序 ID。在这些步骤之前,我已经创建并下载了.cer file from keychain access. 完成这些步骤后created SSL (Apple Push Notification Service SSL certificate) file and installed,我在我的 Mac 钥匙串访问中下载了新的。一旦我安装了这个文件,验证(那里有绿色勾号)和got the .p12 file from this ssl file.

我按照苹果文档RemoteNotificationsPG.pdf,在保存 .p12 文件后他们提到的这个文档中打开终端应用程序并输入以下推荐,

我在我的终端应用程序中使用了它,但出现了错误消息,即

您能否建议或指导我在哪里做错或在这些步骤中遗漏了什么?请帮我。提前致谢。

编辑:

我将我的 Certificates.p12 文件存储在我的桌面上。文件夹路径是Desktop->1/5/2012_Certificate->2/5/12->Certificates.p12

'ls' command在终端中使用过它没有列出我的 Certificates.p12 文件。

我已经输入cd *path*了这个返回No such file or directory

请帮我。提前致谢。