小编Rab*_*bin的帖子

使用openssl使用PHP验证RRSIG

我正在尝试进行RRSIG验证,我正在尝试在PHP中使用openssl lib.但我有一个问题是将公钥传递给该openssl_verify函数.

这是一个基本代码,使用Net/DNS2库通过DNSSEC选项执行DNS查询.并获得DNSKEY和RRSIG.

<?php

require_once 'Net/DNS2.php';

$r = new Net_DNS2_Resolver(array('nameservers' => array('127.0.0.1')));
$r->dnssec = true;

try {
        $result = $r->query('ip4afrika.nl', 'DNSKEY');

} catch(Net_DNS2_Exception $e) {

        echo "::query() failed: ", $e->getMessage(), "\n";
        die(); // 
}

// print_r($result->answer);

$public_key_bin = base64_decode( $result->answer[0]->key ) ;
$public_key_str = $result->answer[0]->key; //echo $public_key_str; die();
// $public_key_res = openssl_x509_parse($public_key_bin);
$public_key_res = openssl_x509_read($public_key_str);
// $public_key_res = openssl_pkey_get_public($public_key_str);

while ($msg = openssl_error_string()) echo $msg . PHP_EOL;
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息,

使用时:

$public_key_res = openssl_x509_read($public_key_str);

 PHP Warning:  openssl_x509_read(): supplied …
Run Code Online (Sandbox Code Playgroud)

php php-openssl dnssec

7
推荐指数
1
解决办法
235
查看次数

如何在 Ansible 中访问包含连字符的变量名称

我有一个简单的 vlan 配置文件,我喜欢让密钥与 JunOS 语法匹配(这样我可以根据需要将它们作为聚合传递),所以我使用vlan-id像此示例变量文件一样的密钥。

# vlans.yaml
vlans:
    - name: general
      description: "General"
      vlan-id: 100
    - name: hotline
      description: "Accounting"
      vlan-id: 110
Run Code Online (Sandbox Code Playgroud)

但由于连字符,我无法访问 vlan-id 密钥

    - debug:
        msg: "{{ item.vlan-id }}"
      loop: "{{ vlans }}"
      tags: debug

Run Code Online (Sandbox Code Playgroud)
"msg": "The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'vlan'
Run Code Online (Sandbox Code Playgroud)

如果我直接输出该项目,我可以看到密钥

    - debug:
        msg: "{{ item }}"
      loop: "{{ vlans }}
Run Code Online (Sandbox Code Playgroud)
ok: [SW02] => (item={'name': 'external', 'description': 'External', 'vlan-id': 209}) => { …
Run Code Online (Sandbox Code Playgroud)

yaml ansible

4
推荐指数
1
解决办法
2687
查看次数

Ansible:when子句中的多个和/或条件

尝试在when语句中使用多个和/或条件来决定是否需要运行任务时,我遇到了问题.基本上我正在制作一本剧本来自动化系统修补,其中包括安全补丁,仅内核补丁和在var文件中指定包的选项.

我使用以下命令运行playbook并通过扩展变量选项定义变量(-e)

ansible-playbook site.yml -i inventory --ask-vault -u (username) -e "security=true restart=true" -k -K

默认情况下,playbook将更新除内核之外的系统上的每个包,但如果我指定任何一些变量,我想跳过该操作.我的代码如下:

- name: Update all packages
  yum:
     name: "*"
     state: latest
     exclude: "kernel*"
  when: security is not defined or kernel is not defined  or specified_packages 
 is not defined and ansible_os_family == "RedHat" 
Run Code Online (Sandbox Code Playgroud)

我尝试了以下所有组合:

when: (ansible_os_family == "RedHat") and (security is defined or kernel is defined or specified_packages is defined)

when: (ansible_os_family == "RedHat") and (security == true or kernel == true or specified_packages == true ) …

ansible ansible-2.x

3
推荐指数
2
解决办法
4万
查看次数

标签 统计

ansible ×2

ansible-2.x ×1

dnssec ×1

php ×1

php-openssl ×1

yaml ×1