这是一个简单的PHP脚本,它打开一个准备发送HTTP请求的SSL套接字:

$contextOptions = array();

$socketUrl = 'ssl://google.com:443';

$streamContext = stream_context_create($contextOptions);

$socket = stream_socket_client($socketUrl, $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $streamContext);

if (!$socket || $errno !== 0) {

var_dump($socket, $errstr);

exit;

}

var_dump($socket);

exit('Socket created.');

这工作 – 我刚刚测试了它 – 但是没有针对可信CA存储的验证.

$contextOptions = array(

'ssl' => array(

'cafile' => 'C:\xampp\cacerts.pem',

'CN_match' => '*.google.com', // CN_match will only be checked if 'verify_peer' is set to TRUE. See https://bugs.php.net/bug.php?id=47030.

'verify_peer' => TRUE,

)

);

$socketUrl = 'ssl://google.com:443';

$streamContext = stream_context_create($contextOptions);

$socket = stream_socket_client($socketUrl, $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $streamContext);

if (!$socket || $errno !== 0) {

var_dump($socket, $errstr);

exit;

}

var_dump($socket);

exit('Socket created.');

只要’cafile’存在且具有正确的CA,那么这个例子也有效……

…但是如果不对CA文件名/文件路径进行硬编码,我们怎么能这样做呢?我们正在尝试创建一些可独立于OS验证SSL证书的内容,而无需为运行此脚本的每个服务器单独配置.

我知道Linux有一个CA目录,我们可以把它作为’capath’. Windows怎么样?它在哪里存储其可信任的CA?我搜索过,遗憾的是这些似乎都在注册表中,所以我们无法从PHP访问它们吗?其他操作系统怎么样?

php ca 校验,PHP和SSL CA验证 – 操作系统独立相关推荐

  1. java ca校验服务器证书,添加 CA 签名服务器证书和可信 CA 证书

    可以选择使用以下命令验证安装的证书: 列出所有服务器证书,并显示别名和有效日期等信息: msgcert list-certs 在使用 ./msgcert generate-CertDB 生成证书时,M ...

  2. TLS就是SSL的升级版+网络安全——一图看懂HTTPS建立过程——本质上就是引入第三方监管,web服务器需要先生成公钥和私钥,去CA申请,https通信时候浏览器会去CA校验CA证书的有效性...

    起初是因为HTTP在传输数据时使用的是明文(虽然说POST提交的数据时放在报体里看不到的,但是还是可以通过抓包工具窃取到)是不安全的,为了解决这一隐患网景公司推出了SSL安全套接字协议层,SSL是基于 ...

  3. HTTPs SSL CA

    一张图(燕姐课上讲过,必考)对称密钥(DES/DES3/AES),非对称密钥(RSA公钥加密,只有私钥能解密.私钥可以当作签名使用,lhh,hsj不懂请自行百度一下) 签名的流程示意图: 1. CA建 ...

  4. 深入浅出 SSL/CA 证书及其相关证书文件(pem、crt、cer、key、csr)

    互联网是虚拟的,通过互联网我们无法正确获取对方真实身份.数字证书是网络世界中的身份证,数字证书为实现双方安全通信提供了电子认证.数字证书中含有密钥对所有者的识别信息,通过验证识别信息的真伪实现对证书持 ...

  5. 密码学专题 证书和CA指令 申请证书|建立CA|CA操作|使用证书|验证证书

    Req指令介绍 功能概述和指令格式 req指令一般来说应该是提供给证书申请用户的工具,用来生成证书请求以便交给CA验证和签发证书.但是,OpenSSL的req指令的功能远比这样的要求强大得多,它不仅可 ...

  6. TLS/SSL/CA、数字签名、非对称加密之间的关系

    数字签名(数字证书) 签名:通常采用摘要+非对称加密算法,即:如果有原文content,首先对content取摘要(如md5),然后对md5结果采用非对称加密的算法进行加密,从而得到了数字签名. 验签 ...

  7. TrustAsia等CA颁发的TLS/SSL证书的四个pem/crt/key/csr文件区别与说明

    向Trust Asia等SSL证书颁发机构申请得到证书后,从其下载得到的证书文件一般包含如下四个: xxx_bundle.pem xxx_bundle.crt xxx.key xxx.csr 首先看一 ...

  8. C# webkit 内核浏览器 访问https网站 显示空白或者提示 Problem with the SSL CA cert (path? access rights?)

    如题 解决方法: 安装中文路径,经常 出现问题.改下安装路径. 只需要动态链接库所在路径上没有中文字符,webkit内核浏览器就可以访问https网址. 转自:C# webkit 内核浏览器 访问ht ...

  9. phpstudy配置SSL CA证书

    本地Windows环境, phpstudy 集成 php7 后,出现错误提示: URL error 60: SSL certificate problem: unable to get local i ...

最新文章

  1. 马斯克员工参与新冠研究,论文登上Nature子刊
  2. MySQL 解压缩安装
  3. 走向.NET架构设计—第四章—业务层分层架构(后篇)
  4. 大型网站技术架构:核心原理与案例分析 mobi_阿里面试官:你会高并发技术吗?...
  5. 2017,SAP向云看齐
  6. python建站部署_SpringBoot入门建站全系列(三十二)接入xxl-job分布式任务调度平台...
  7. 为子控件添加自定义绘图方式
  8. 设计模式C++实现(2)——单例模式
  9. JavaScript面向对象的理解
  10. html radio 去掉圆点,html radio默认选中,去除选中
  11. CSS3过渡效果(CSS3)
  12. C语言堆栈入门 —— 堆和栈的区别
  13. 2018年省赛热身赛第4场
  14. 初识面向对象(钻石继承,super,多态,封装,method,property,classmethod,staticmethod)...
  15. 5、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle该项目的开发——使用datagrid做报表
  16. 两种方法求x的n次幂
  17. 域名投毒,DNS污染,域名欺骗,其实就是域名污染。
  18. 12 Go 并发调度器模型
  19. aspose-words更新域/目录(页码不准确问题)
  20. 关于Mastering-OpenCV3第二版的代码跑通--关于PCL的一些问题

热门文章

  1. 强化学习(一)---绪论
  2. R语言学习笔记之——数据处理神器data.table
  3. MATLAB实战系列(二十六)-matlab通过遗传算法求解车间调度问题
  4. 滴滴出行2020数据分析面试题
  5. C++工程中初步使用QML
  6. 程序员职业发展路径图:从菜鸟工程师到高级架构师
  7. 一家创业公司的5年架构变迁史
  8. Exploring Micro-frameworks: Spring Boot--转载
  9. 【未来可能用到】关于模型的100个问答-part2
  10. 数据挖掘建模之常见概率分布总结