2013-02-28 55 views
10

我想为服务器上的加密PDF生成证书(此时自签名)。我感兴趣的是有关如何使用TCPDF的工作流程。TCPDF的证书

我做了什么:

1)生成密钥:

openssl req -x509 -nodes -days 365000 -newkey rsa:1024 
openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12 

2)然后生成与.crt的PDF - 文件

3)然后,我开始Acrobat Reader软件并安装证书(tcpdf.p12)。我用文档 - >安全设置 - >数字ID

4)我可以导入安全设置,但仍然无法打开PDF。不知道我是否做对了? acrobat reader 9.5.4会发生什么情况,并输入密码打开对话框。我给在密码并出现错误 - >未知错误 - > CRecipientList-218

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

$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')))); 

我结合下面的例子:

http://www.tcpdf.org/examples/example_052.phps

http://www.tcpdf.org/examples/example_016.phps

PS:我知道它的一个非常实际的例子。只是认为它更容易理解我正在做的步骤。

问题:

  1. 是工作流的一般权利对如何处理证书加密PDF文件(!)?

  2. 当我生成.p12文件时,我必须在该文件的密码中提供该文件,稍后在将证书导入acrobat时使用该文件。我问,因为我也有“上一代”给密码的可能性。

  3. 如果工作流程正确...我该如何解决问题?

+1

您是否尝试过联系TCPDF家伙呢? – j0k 2013-03-14 18:24:29

+0

我做过了,但是到目前为止在sourceforge上还没有答案。 – whereismydipp 2013-03-29 01:39:23

回答

0

我希望你也看了看评论;) 有一个小型如何使用安装在提供PDF格式的文件

尤其是:

// To open the document you need to install the private key (tcpdf.p12) on the Acrobat Reader. The password is: 1234 
但是

,你需要使用现有密钥提供setProtection:

'c' => 'file://../tcpdf.crt' 

您给出的路径只是显示在这里你需要给的路径,但其本身需要的路径改变

摘要:请再次阅读在本例中016文件的意见,他们会帮得到它的工作,你需要

+0

当然,我改变了路径。每个例子都可以独立运作,但不能一起运作。 – whereismydipp 2013-03-29 01:42:41

3

该方法的方式基本上是正确的 - 但你可能错过了一些细节。

我一直使用*.crt格式的证书没有密码(包括私人和公共密钥),它工作正常。

另外请注意,您必须安装在PHP的OpenSSL扩展。

见尼科拉·阿斯尼的方法TCPDF::setSignature()评论:

* 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 Reader软件 - 使用自签名证书进行签名生成的PDF文档只是显示为不可信的,但他们仍然可以正常打开。