首页
学习
活动
专区
圈层
工具
发布

TCPDF证书
EN

Stack Overflow用户
提问于 2013-02-28 02:11:39
回答 2查看 9.7K关注 0票数 12

我想为服务器上的加密PDF生成一个证书(目前是自签名的)。我感兴趣的是关于如何使用TCPDF的工作流。

我所做的:

1)生成密钥:

代码语言:javascript
复制
openssl req -x509 -nodes -days 365000 -newkey rsa:1024 
openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12

2)然后使用.crt -文件生成PDF。

3)然后启动了acrobat阅读器并安装了证书(tcpdf.p12)。我使用了文档->安全设置->数字id

4)我可以导入安全设置,但仍然不能打开PDF。不知道我做得对不对?如果acrobat阅读器9.5.4打开一个输入密码的对话框,会发生什么?我输入密码,一个错误出现在->未知错误-> CRecipientList-218

5)我使用的代码(基本上相同)

代码语言:javascript
复制
$certificate = 'file://../tcpdf.crt';
$info = array(
'Name' => 'TCPDF',
'Location' => 'Office',
'Reason' => 'Testing TCPDF',
'ContactInfo' => 'http://www.tcpdf.org',
);
$pdf->setSignature($certificate, $certificate, 'tcpdfdemo', '', 2, $info);
$pdf->SetProtection($permissions=array('print', 'copy'), $user_pass='', owner_pass=null, $mode=1, $pubkeys=array(array('c' => 'file://../tcpdf.crt', 'p' => array('print'))));

我结合了以下例子:

052.phps

016.phps

P.S.:我知道这是一个非常实际的例子。只是想更容易理解我正在做的步骤。

问题:

  1. 一般的工作流是如何(!)用加密来接近PDF的证书吗?
  2. 在生成.p12文件时,必须为该文件提供密码,稍后将证书导入acrobat时使用该密码。我之所以问这个问题,是因为我也有“一代”提供密码的可能性。
  3. 如果工作流是right...how,我会修复这个问题吗?
EN

回答 2

Stack Overflow用户

发布于 2013-08-21 14:26:20

这个方法基本上是正确的--但你可能忽略了其中的一些细节。

我一直在使用*.crt格式的证书,没有密码(包括私钥和公钥),它工作得很好。

还要注意,您必须已经在PHP中安装了OpenSSL扩展。

参见Nicola Asuni关于方法TCPDF::setSignature()的注释:

代码语言:javascript
复制
* To create self-signed signature: openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout tcpdf.crt -out tcpdf.crt
* To export crt to p12: openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12
* To convert pfx certificate to pem: openssl pkcs12 -in tcpdf.pfx -out tcpdf.crt -nodes

您不需要将任何证书安装到Acrobat生成的PDF文档中,使用自签名的证书只显示为不受信任的证书,但它们仍然可以正常打开。

票数 4
EN

Stack Overflow用户

发布于 2013-03-26 14:06:45

我希望你也看一看评论;)有一个迷你如何设置pdf使用提供的文件

特别是:

代码语言:javascript
复制
// To open the document you need to install the private key (tcpdf.p12) on the Acrobat Reader. The password is: 1234

但是,您需要为setProtection提供现有密钥:

代码语言:javascript
复制
'c' => 'file://../tcpdf.crt'

您给出的路径只是显示您需要给出路径的位置,但是路径本身需要更改。

摘要:请再次阅读示例016文件中的注释,它们将有助于使其以您需要的方式工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15126274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档