什么是 OpenSSL?
OpenSSL 是一个免费的开源模块,旨在处理通过计算机网络进行的通信。OpenSSL 是传输层安全性 (TLS) 和安全套接字层 (SSL) 协议的工具。
什么是 SSL 证书?
网站使用安全套接字层,即 SSL。SSL 证书负责使用加密来保护两台计算机之间的数据。涉及的两台计算机可以是客户端和服务器之间的数据共享。
当您共享密码、信用卡详细信息、家庭住址、社会安全号码等数据时,它必须受到保护,SSL 证书也负责保护这些数据。SSL 证书确保对所涉及的两台计算机的身份进行身份验证,以实现安全连接。
PHP 中的 OpenSSL 安装
OpenSSL 模块默认添加到 PHP 中。可以通过删除 php.ini 扩展开头 ;extension=php_openssl.dll 的( ; ) 添加。之后,重新启动 apache 并确认更改是否反映出来,将以下代码保存为 .php 并在浏览器中执行 .php。
<?php
phpinfo();
?>
您应该会看到浏览器中启用了 openssl,如下所示:
OpenSSL 配置
openssl.cnf 是配置文件,具有 openssl 工作所需的所有默认配置。要执行 openssl,首先是 php 会尝试找到配置文件。要获得相同的结果,您必须将 php 文件夹添加到环境变量中。
如果您是 Windows 用户,以下是为 php 文件夹设置环境变量的步骤:
- 1. 右键单击我的电脑,然后转到属性。
- 2. 转到高级系统设置。
- 3. 单击“环境变量”按钮。
- 4. 编辑 path 变量,然后单击 Edit 按钮。
- 5. 现在在末尾添加 Php 文件夹路径。我正在使用 xampp,所以我的 php 文件夹是 C:\xampp\php;
- 6.完成后,单击“确定”按钮。
- 7.现在打开命令提示符并输入命令:openssl version -a。
C:\Windows\system32>openssl version -a
OpenSSL 1.0.2l 25 May 2017
built on: reproducible build, date unspecified
platform: mingw64
options: bn(64,64) rc4(16x,int) des(idx,cisc,2,long) idea(int) blowfish(idx)
compiler: x86_64-w64-mingw32-gcc -I. -I.. -I../include -D_WINDLL -DOPENSSL_PIC
-DOPENSSL_THREADS -D_MT -DDSO_WIN32 -static-libgcc -DL_ENDIAN -O3 -Wall -DWIN32_
LEAN_AND_MEAN -DUNICODE -D_UNICODE -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DO
PENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSH
A512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
-DECP_NISTZ256_ASM
OPENSSLDIR: "/etc/ssl"
OpenSSL 1.0.2l 25 May 2017
built on: reproducible build, date unspecified
platform: mingw64
options: bn(64,64) rc4(16x,int) des(idx,cisc,2,long) idea(int) blowfish(idx)
compiler: x86_64-w64-mingw32-gcc -I. -I.. -I../include -D_WINDLL -DOPENSSL_PIC
-DOPENSSL_THREADS -D_MT -DDSO_WIN32 -static-libgcc -DL_ENDIAN -O3 -Wall -DWIN32_
LEAN_AND_MEAN -DUNICODE -D_UNICODE -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DO
PENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSH
A512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
-DECP_NISTZ256_ASM
OPENSSLDIR: "/etc/ssl"
现在 php 将能够找到 openssl.cnf 配置文件。
OpenSSL 函数
下表列出了与 PHP OpenSSL 相关的所有函数。php - 表示支持该函数的 PHP 最早版本。
函数 | 描述 | php |
---|---|---|
openssl_pkey_new() | 返回具有新的私有密钥和公钥对的资源标识符 | 5.0.0 |
openssl_pkey_get_private() | 返回私钥 | 5.0.0 |
openssl_pkey_get_public() | 返回公钥 | 5.0.0 |
openssl_pkey_export_to_file() | 将密钥导出到文件 | 5.0.0 |
openssl_private_encrypt() | 使用私有密钥加密数据 | 5.0.0 |
openssl_public_encrypt() | 使用公钥加密数据 | 5.0.0 |
openssl_public_decrypt() | 使用公钥解密数据 | 5.0.0 |
openssl_private_decrypt() | 使用私钥解密数据 | 5.0.0 |