IT资讯/综合软件下载站!┆ 最新软件 最新文章 最新手机 UFO外星人 网站分类
您当前的位置→图文中心软件教程PHP利用Socket获取网站的SSL证书与公钥

PHP利用Socket获取网站的SSL证书与公钥


2017/6/16 11:33:45 编辑:admin 来源:本站整理 
今天给大家分享PHP利用Socket获取网站的SSL证书与公钥软件教程文章。喜欢的可以分享PHP利用Socket获取网站的SSL证书与公钥给你的好友。 喜欢软件教程这篇文章的网友不妨去看看下面的文章:
  • PHP利用Socket获取网站的SSL证书与公钥▼去看看
  • 通过 php curl 请求网页并不能获取到证书信息, 此时需要使用 ssl socket 获取证书内容。 下面来一起看看看详细的介绍这篇文章主要给大家介绍了PHP利用Socket获取网站的SSL证书与公钥的相关资料, 文中给出了详细的示例代码供大家参考学习, 对大家具有一定的参考学习价值, 需要的朋友们下面来一起看看吧。 示例代码:
    // 创建 stream context$context = stream_context_create([ 'ssl' => [ 'capture_peer_cert' => true, 'capture_peer_cert_chain' => true, ],]); $resource = stream_socket_client("ssl://$domain:$port", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);$cert = stream_context_get_params($resource); $ssl = $cert['options']['ssl'];$resource = $ssl['peer_certificate']; // 网站证书中只有公钥, 通过 openssl_pkey_get_details 导出公钥 $ret = [ 'crt' => '', 'pub' => '',]; $pkey = openssl_pkey_get_public($resource);$ret['pub'] = openssl_pkey_get_details($pkey)['key']; openssl_x509_export($resource, $pem);$ret['crt'] = $pem; foreach ($ssl['peer_certificate_chain'] as $resource){ openssl_x509_export($resource, $pem); $ret['crt'] .= "\n" . $pem;} // 保存 $ret['crt'] 为 domain.crt// 保存 $ret['pub'] 为 domain.pub return $ret;
    验证证书中的公钥A是否正确, 通过私钥导出公钥B, 比较两者发现一致。
    $domain = 'blog.zhengxianjun.com';$port = '443';// ...$pub_a = $ret['pub']; $private_key_path = '/conf/ssl/blog.zhengxianjun.com.key'; // 证书没有设置密码, $passphrase 为空字符串$pkey = openssl_pkey_get_private(file_get_content($private_key_path), $passphrase = '');$pub_b = openssl_pkey_get_details($pkey)['key']; // 两者一致var_dump($pub_a === $pub_b);
    函数 stream_socket_client 还有一个用途是当知道服务器 IP 时, 能获取到服务器可能可以使用的域名。
    $resource = stream_socket_client("ssl://$ip:$port", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);$cert = stream_context_get_params($resource); // 解析 X.509 格式证书$info = openssl_x509_parse($cert['options']['ssl']['peer_certificate']); // 获取证书中的可信域名列表$domain = str_replace('DNS:', '', $info['extensions']['subjectAltName']);
    以上可以看到获取网站证书并不能获得私钥。 在一些使用 CDN 的站点, 如果使用了 HTTPS 同时又希望使用自有域名, 是否需要将自己的私钥提供给 CDN 厂商呢?实际上证书路径与使用者名称(支持 https 的域名)并不需要一致。 也就是使用自有域名并进行 CDN 加速时不需要使用自有的 ssl 证书, 只需将自己的 CDN 域名加到厂商证书的域名列表即可。
    12下一页
    相关文章
  • Photoshop 让图片呈现出HDR效果,PS软件将人像照片调出HDR效果
  • iPhone8 还没发布就出现严重问题 !
  • 苹果手机怎么恢复删除短信?iPhone被删除短信还能找回吗
  • 苹果手机怎么恢复微信聊天记录?教你快速找回iPhone微信记录
  • 升级苹果iOS11 Beta3“设置”IPHONE手机全变英文怎么解决
  • 苹果手机如何扫描信用卡?iPhone手机扫描信用卡教程
  • iPhone 视频格式如何转换
  • iPhone 8价格可能会超过1000美元以上
  • 相关推荐
  • photoshop火焰花纹图案笔刷插件(PS漂亮的火焰纹饰火焰花纹图案笔刷) v1.0 最新版
  • photoshop樱花图案笔刷插件(pS漂亮的日本樱花图案笔刷) 最新版
  • iphone8抢购神器 v1.0.0.257 最新版
  • 星外php自动配置安装程序(星外php自动安装程序下载) v5.7 官方版
  • 微信投票软件刷票器苹果手机版(微信刷票iPhone版) v1.0 最新版
  • 《七日杀》Alpha v16.B138汉化+大背包补丁整合版 最新版
  • photoshop重复图片查找工具(ps图片查重) v2.47 最新版
  • PHP工具箱 v0.4 官方版
  • 发表评论
    栏目列表
    1. 新闻资讯
    2. 注册码区
    3. 评测专区
    4. 电脑技术
    5. ARP文章
    6. 免费资源
    7. QQ文章
    8. 网站专题
    9. 安全防范
    10. 精品下载
    11. 游戏资讯
    12. 手机技巧
    13. 软件教程
    14. 更多分类
    阅读排行
    1. 影音先锋怎么看片搜片【看av片毛...
    2. 怎样往微信朋友圈发5分钟视频
    3. 192.168.1.1路由器设置密码怎么修...
    4. 360压缩密码破解工具怎么使用?
    5. led player6.0怎么使用
    6. 美篇app使用教程?美篇app有什么...
    7. 钉钉高温补贴是什么? 钉钉高温...
    8. 12306操作频率过快怎么解决 1230...
    9. 微信支付推出公益币 微信支付推出...
    10. 多款日程管理软件对比分析下载
    11. ofo免费月卡是什么?ofo免费月卡怎...
    12. 点屏D币商品怎么兑换
    13. win10老电脑机械硬盘如何提速
    14. 支付宝扫顺手牵羊卡怎么没有
    15. 手机如何远程控制电脑?160WiFi如...
    16. 支付宝和余额宝有使用风险吗
    17. 今年高考志愿怎么填报流程 2017高...
    18. p2psearcher3.5服务器正在连接
    19. 全民k歌怎么让粉丝变多 全民k歌怎...
    20. 微信6.3.22怎么发视频到朋友圈
    网站帮助 - 广告合作 - 下载声明 - 网站地图
    88lifa