Puppet cert命令参数介绍(四)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

puppet cert是管理Puppet证书签名的命令,在agent访问master时使用的是SSL安全套接字,优点是加密双方的通信数据,从而保证信息安全.puppet cert命令可以实现对证书的管理、授权、回收、显示和产生签名文件.


1、查看puppet cert帮助信息:(帮助文档注释过多,只截取参数部分)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
[root@puppet ~] # puppet cert -h
* clean:         #--clean清理Master主机上存储的所有相关证书文件.
   Revoke a host's certificate ( if  applicable) and remove all files
   related to that host from puppet cert's storage. This is useful when
   rebuilding hosts, since new certificate signing requests will only be
   honored  if  puppet cert does not have a copy of a signed certificate
   for  that host. If  '--all'  is specified  then  all host certificates,
   both signed and unsigned, will be removed.
* fingerprint:         #打印证书的算法.
   Print the DIGEST (defaults to the signing algorithm) fingerprint of a
   host's certificate.
* generate:         #为指定的agent client域名签发一个证书文件.
   Generate a certificate  for  a named client. A certificate /keypair  will
   be generated  for  each client named on the  command  line.
* list:         #在Master上可以列出目前Agent机器等待签发证书的信息.
   List outstanding certificate requests. If  '--all'  is specified, signed
   certificates are also listed, prefixed by  '+' , and revoked or invalid
   certificates are prefixed by  '-'  (the verification outcome is printed
   in  parenthesis).
* print:         #打印证书的版本信息
   Print the full-text version of a host's certificate.
* revoke:         #回收指定的Agent证书.
   Revoke the certificate of a client. The certificate can be specified either
   by its serial number (given as a hexadecimal number prefixed by  '0x' ) or by its
   hostname . The certificate is revoked by adding it to the Certificate Revocation
   List given by the  'cacrl'  configuration option. Note that the puppet master
   needs to be restarted after revoking certificates.
* sign:         #签署待认证的证书请求.
   Sign an outstanding certificate request.
* verify:         #确认证书是否由本地CA签发.
   Verify the named certificate against the  local  CA certificate.
* reinventory:
   Build an inventory of the issued certificates. This will destroy the current
   inventory  file  specified by  'cert_inventory'  and recreate it from the
   certificates found  in  the  'certdir' . Ensure the puppet master is stopped
   before running this action.
OPTIONS(命令参数的子选项)
-------
Note that any setting that's valid  in  the configuration
file  is also a valid long argument. For example,  'ssldir'  is a valid
setting, so you can specify  '--ssldir <directory>'  as an
argument.
See the configuration  file  documentation at
http: //docs .puppetlabs.com /references/stable/configuration .html  for  the
full list of acceptable parameters. A commented list of all
configuration options can also be generated by running puppet cert with
'--genconfig' .
* --all:         #所有.可以使用在'sign','clean', 'list',and 'fingerprint'。
   Operate on all items. Currently only makes sense with the  'sign' ,
   'clean' 'list' , and  'fingerprint'  actions.
* --digest:         #设置指纹提取的摘要(默认为使用的摘要签署的证书)有效值为你的openssl和openssl ruby扩展版本.
   Set the digest  for  fingerprinting (defaults to the digest used when
   signing the cert). Valid values depends on your openssl and openssl ruby
   extension version.
* --debug:         #调试模式
   Enable full debugging.
* --help:
   Print this help message
* --verbose:
   Enable verbosity.
* --version:
   Print the puppet version number and  exit .
EXAMPLE
-------
     $ puppet cert list
     culain.madstop.com
     $ puppet cert sign culain.madstop.com


2、举例演示:

后续演示依旧使用下面三台机器,直到写完puppet文章.

192.168.30.134  puppet

192.168.30.131  sh-web1

192.168.30.132  sh-proxy2


问题:Master上没有autosign.conf文件,需要手动签署认证,怎么操作或者说这台服务器下架,格式化完做别的用途,证书信息怎么处理?

1、Master上去掉autosign.conf文件.(windows svn客户端本地修改就行.)

wKioL1mw_X6haLLhAAG9MxpCRbE920.png

2、重启puppetmaster 查看证书.(已经签署的证书,取消autosign.conf并没有影响.)

1
2
3
4
5
6
7
8
[root@puppet puppet] # /etc/init.d/puppetmaster reload
Stopping puppetmaster:                                     [  OK  ]
Starting puppetmaster:                                     [  OK  ]
[root@puppet puppet] # puppet cert list --all
"puppet"                 (SHA256) FF:75:FE:B7:8E:E5:46:4A:4A:AB:2F:8D:C4:B0:C6:43:95:47:74:0C:3E:3F:38:1E:1B:88:4C:45:66:23:78:3E (alt names:  "DNS:puppet" "DNS:puppet.localdomain" )
"puppet.localdomain"     (SHA256) BA:F6:11:67:10:1D:93:1D:43:8C:1D:42:C8:EB:8F:6A:F1:25:FE:38:35:CB:17:7A:6D:59:99:34:05:CF:E1:FC (alt names:  "DNS:puppet" "DNS:puppet.localdomain" )
"sh-proxy2.localdomain"  (SHA256) 75:85:8E:AB:74:8A:D6:8E:0B:3A:87:33:2B:BA:60:D2:81:0A:23:5F:73:A4:90:AC:8B:34:DC:A4:F3:00:41:39
"sh-web1.localdomain"    (SHA256) B9:31:9C:62:94:70:4A:DD:E3:35:0F:3F:14:BB:7A:C7:AE:BE:F9:24:BC:C9:92:ED:DB:1F:8C:95:65:09:97:5B


3、删除Master端sh-proxy2的证书认证文件.

 --revoke让证书过期(默认证书过期时间5年,这个时间资料写的,我没确认过.),先让证书过期,然后再清理.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@puppet puppet] # puppet cert --revoke sh-proxy2.localdomain
Notice: Revoked certificate with serial 5
[root@puppet puppet] # puppet cert list --all
"puppet"                 (SHA256) FF:75:FE:B7:8E:E5:46:4A:4A:AB:2F:8D:C4:B0:C6:43:95:47:74:0C:3E:3F:38:1E:1B:88:4C:45:66:23:78:3E (alt names:  "DNS:puppet" "DNS:puppet.localdomain" )
"puppet.localdomain"     (SHA256) BA:F6:11:67:10:1D:93:1D:43:8C:1D:42:C8:EB:8F:6A:F1:25:FE:38:35:CB:17:7A:6D:59:99:34:05:CF:E1:FC (alt names:  "DNS:puppet" "DNS:puppet.localdomain" )
"sh-web1.localdomain"    (SHA256) B9:31:9C:62:94:70:4A:DD:E3:35:0F:3F:14:BB:7A:C7:AE:BE:F9:24:BC:C9:92:ED:DB:1F:8C:95:65:09:97:5B
"sh-proxy2.localdomain"  (SHA256) 75:85:8E:AB:74:8A:D6:8E:0B:3A:87:33:2B:BA:60:D2:81:0A:23:5F:73:A4:90:AC:8B:34:DC:A4:F3:00:41:39 (certificate revoked)
  --clean清理掉sh-proxy2.localdomain的证书.
[root@puppet puppet] # puppet cert --clean sh-proxy2.localdomain
Notice: Revoked certificate with serial 5
Notice: Removing  file  Puppet::SSL::Certificate sh-proxy2.localdomain at  '/var/lib/puppet/ssl/ca/signed/sh-proxy2.localdomain.pem'
Notice: Removing  file  Puppet::SSL::Certificate sh-proxy2.localdomain at  '/var/lib/puppet/ssl/certs/sh-proxy2.localdomain.pem'
[root@puppet puppet] # puppet cert list --all
"puppet"               (SHA256) FF:75:FE:B7:8E:E5:46:4A:4A:AB:2F:8D:C4:B0:C6:43:95:47:74:0C:3E:3F:38:1E:1B:88:4C:45:66:23:78:3E (alt names:  "DNS:puppet" "DNS:puppet.localdomain" )
"puppet.localdomain"   (SHA256) BA:F6:11:67:10:1D:93:1D:43:8C:1D:42:C8:EB:8F:6A:F1:25:FE:38:35:CB:17:7A:6D:59:99:34:05:CF:E1:FC (alt names:  "DNS:puppet" "DNS:puppet.localdomain" )
"sh-web1.localdomain"  (SHA256) B9:31:9C:62:94:70:4A:DD:E3:35:0F:3F:14:BB:7A:C7:AE:BE:F9:24:BC:C9:92:ED:DB:1F:8C:95:65:09:97:5B


4、清理完puppetmaster需要重新启动下master.

1
2
3
4
5
6
7
[root@puppet puppet] # /etc/init.d/puppetmaster reload
Stopping puppetmaster:                                     [  OK  ]
Starting puppetmaster:                                     [  OK  ]
[root@puppet puppet] # puppet cert list --all
"puppet"               (SHA256) FF:75:FE:B7:8E:E5:46:4A:4A:AB:2F:8D:C4:B0:C6:43:95:47:74:0C:3E:3F:38:1E:1B:88:4C:45:66:23:78:3E (alt names:  "DNS:puppet" "DNS:puppet.localdomain" )
"puppet.localdomain"   (SHA256) BA:F6:11:67:10:1D:93:1D:43:8C:1D:42:C8:EB:8F:6A:F1:25:FE:38:35:CB:17:7A:6D:59:99:34:05:CF:E1:FC (alt names:  "DNS:puppet" "DNS:puppet.localdomain" )
"sh-web1.localdomain"  (SHA256) B9:31:9C:62:94:70:4A:DD:E3:35:0F:3F:14:BB:7A:C7:AE:BE:F9:24:BC:C9:92:ED:DB:1F:8C:95:65:09:97:5B


5、删除掉sh-proxy2上的证书认证信息:

1
2
3
4
[root@sh-proxy2 puppet] # find ./ -type f -name "sh-proxy2.localdomain*" -exec mv {} /tmp/ \;
[root@sh-proxy2 puppet] # find ./ -type f -name "sh-proxy2.localdomain*" 
[root@sh-proxy2 puppet] # ls /tmp/
sh-proxy2.localdomain.json  sh-proxy2.localdomain.pem  yum.log

wKiom1mxAOCgMyFuAAAni2bbgOM439.png

6、重启启动puppet agent服务,证书会自动重新生成.

1
2
3
4
5
6
7
[root@sh-proxy2 puppet] # /etc/init.d/puppet restart
Stopping puppet agent:                                     [  OK  ]
Starting puppet agent:                                     [  OK  ]
[root@sh-proxy2 puppet] # find ./ -type f -name "sh-proxy2.localdomain*" 
. /ssl/public_keys/sh-proxy2 .localdomain.pem
. /ssl/private_keys/sh-proxy2 .localdomain.pem
. /ssl/certificate_requests/sh-proxy2 .localdomain.pem

wKioL1mxAQHRNbyzAAA75jI5MTk332.png

7、在puppet master上查看证书:(+代表已经签署认证的,没'+'代表未签署.)

1
2
3
4
5
[root@puppet puppet] # puppet cert list --all
   "sh-proxy2.localdomain"  (SHA256) A6:80:BF:8F:07:0C:CB:F1:47:8C:B3:08:B8:A7:FB:A3:E8:E2:D3:7A:CE:3F:0C:E3:66:77:E8:06:18:36:82:0C
"puppet"                 (SHA256) FF:75:FE:B7:8E:E5:46:4A:4A:AB:2F:8D:C4:B0:C6:43:95:47:74:0C:3E:3F:38:1E:1B:88:4C:45:66:23:78:3E (alt names:  "DNS:puppet" "DNS:puppet.localdomain" )
"puppet.localdomain"     (SHA256) BA:F6:11:67:10:1D:93:1D:43:8C:1D:42:C8:EB:8F:6A:F1:25:FE:38:35:CB:17:7A:6D:59:99:34:05:CF:E1:FC (alt names:  "DNS:puppet" "DNS:puppet.localdomain" )
"sh-web1.localdomain"    (SHA256) B9:31:9C:62:94:70:4A:DD:E3:35:0F:3F:14:BB:7A:C7:AE:BE:F9:24:BC:C9:92:ED:DB:1F:8C:95:65:09:97:5B

8、手动签署证书.(当然为了省事也可以puppet cert sign --all签署所有待认证的.)

1
2
3
4
5
6
7
8
[root@puppet puppet] # puppet cert sign sh-proxy2.localdomain
Notice: Signed certificate request  for  sh-proxy2.localdomain
Notice: Removing  file  Puppet::SSL::CertificateRequest sh-proxy2.localdomain at  '/var/lib/puppet/ssl/ca/requests/sh-proxy2.localdomain.pem'
[root@puppet puppet] # puppet cert list --all
"puppet"                 (SHA256) FF:75:FE:B7:8E:E5:46:4A:4A:AB:2F:8D:C4:B0:C6:43:95:47:74:0C:3E:3F:38:1E:1B:88:4C:45:66:23:78:3E (alt names:  "DNS:puppet" "DNS:puppet.localdomain" )
"puppet.localdomain"     (SHA256) BA:F6:11:67:10:1D:93:1D:43:8C:1D:42:C8:EB:8F:6A:F1:25:FE:38:35:CB:17:7A:6D:59:99:34:05:CF:E1:FC (alt names:  "DNS:puppet" "DNS:puppet.localdomain" )
"sh-proxy2.localdomain"  (SHA256) 6A:48:D0:4A:F3:4B:45:CE:D9:90:B1:FE:AA:91:6F:CB:06:50:17:BF:D1:D4:CE:1D:41:D2:9E:B5:24:AB:52:3A
"sh-web1.localdomain"    (SHA256) B9:31:9C:62:94:70:4A:DD:E3:35:0F:3F:14:BB:7A:C7:AE:BE:F9:24:BC:C9:92:ED:DB:1F:8C:95:65:09:97:5B

9、agent客户端测试:

1
2
3
4
5
6
[root@sh-proxy2 ~] # puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog  for  sh-proxy2.localdomain
Info: Applying configuration version  '1504752428'
Notice: Finished catalog run  in  0.01 seconds


注意:puppet cert list 查看的只是master端待认证的agent端证书,使用--all可以查看未认证和认证的agent证书请求,'+'区分二者.



本文转自青衫解衣 51CTO博客,原文链接:http://blog.51cto.com/215687833/1963453

相关文章
|
Shell 应用服务中间件 nginx
|
安全 Linux 网络协议
puppet yum模块、配置仓储、mount模块
转载:http://blog.51cto.com/ywzhou/1577335 作用:自动为客户端配置YUM源,为使用yum安装软件包提供便捷。 1、服务端配置yum模块 (1)模块清单 [root@puppet ~]# tree /etc/puppe...
1104 0
|
网络协议 安全 网络安全