CA 签发服务器证书
# CA 签发服务器证书
有了 CA 以后,就可以签发服务器证书了。
签发证书,除了 CA 的密钥以外,还需要服务器的公钥。一般来说,SSH 服务器(通常是sshd
)安装时,已经生成密钥/etc/ssh/ssh_host_rsa_key
了。如果没有的话,可以用下面的命令生成。
$ sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -b 4096 -t rsa
1
上面命令会在/etc/ssh
目录,生成ssh_host_rsa_key
(私钥)和ssh_host_rsa_key.pub
(公钥)。然后,需要把服务器公钥ssh_host_rsa_key.pub
,复制或上传到 CA 所在的服务器。
上传以后,CA 就可以使用密钥host_ca
为服务器的公钥ssh_host_rsa_key.pub
签发服务器证书。
$ ssh-keygen -s host_ca -I host.example.com -h -n host.example.com -V +52w ssh_host_rsa_key.pub
1
上面的命令会生成服务器证书ssh_host_rsa_key-cert.pub
(服务器公钥名字加后缀-cert
)。这个命令各个参数的含义如下。
-s
:指定 CA 签发证书的密钥。-I
:身份字符串,可以随便设置,相当于注释,方便区分证书,将来可以使用这个字符串撤销证书。-h
:指定该证书是服务器证书,而不是用户证书。-n host.example.com
:指定服务器的域名,表示证书仅对该域名有效。如果有多个域名,则使用逗号分隔。用户登录该域名服务器时,SSH 通过证书的这个值,分辨应该使用哪张证书发给用户,用来证明服务器的可信性。-V +52w
:指定证书的有效期,这里为52周(一年)。默认情况下,证书是永远有效的。建议使用该参数指定有效期,并且有效期最好短一点,最长不超过52周。ssh_host_rsa_key.pub
:服务器公钥。
生成证书以后,可以使用下面的命令,查看证书的细节。
$ ssh-keygen -L -f ssh_host_rsa_key-cert.pub
1
最后,为证书设置权限。
$ chmod 600 ssh_host_rsa_key-cert.pub
1
上次更新: 2023/10/17, 16:39:02 访问次数: 0