CA证书颁发以及SSH的用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CA证书颁发以及SSH的用法相关的知识,希望对你有一定的参考价值。
参考技术A1、创建私有CA并进行证书申请。
2、总结ssh常用参数、用法
SSH(全称 Secure Shell)是一种加密的网络协议。使用该协议的数据将被加密,如果在传输中间数据泄漏,也可以确保没有人能读取出有用信息。要使用 SSH,目标机器应该安装 SSH 服务端应用程序,因为 SSH 是基于客户-服务模式的。 当你想安全的远程连接到主机,可中间的网络(比如因特网)并不安全,通常这种情况下就会使用 SSH。默认的centos7中自带sshd服务。
客户端ssh命令
格式:
常见选项:
scp命令
用于服务之间文件的互传
选项
rsync 命令
rsync工具可以基于ssh和rsync协议实现高效率的远程系统之间复制文件,使用安全的shell连接做为传
输方式,比scp更快,基于增量数据同步,即只复制两方不同的文件,此工具来自于rsync包
3、总结sshd服务常用参数。
sshd(secure shell)服务使用ssh协议远程开启其他主机shell的服务。首先需要打开sshd 服务
sshd服务状态调整
查看配置文件
联盟链系列 - 中间CA颁发证书
PKI : 中间CA - Openssl 颁发 X.509 证书
当前的网络浏览器带有由证书颁发机构颁发和签名的预安装中间证书。
注意
- 更安全的做法, 使用中间CA来颁发审核通过的证书:
- 创建证书链文件: 我们的证书链文件必须包含根证书,因为尚无客户端应用程序知道该证书。更好的选择(尤其是在管理Intranet的情况下)是在需要连接的每个客户端上安装根证书。在这种情况下,链文件仅需要包含您的中间证书。
cat intermediate/certs/intermediate.cert.pem certs/ca.cert.pem > intermediate/certs/ca-chain.cert.pem
ECC [推荐]
- secp384r1 [推荐]
分层CA, 更安全 [推荐]
(1)生成二级CA证书
准备配置文件 rootCA.conf
[ ca ]
default_ca = the_ca
[ the_ca ]
dir = ./rootCA
private_key = $dir/private/rootCA.key
certificate = $dir/rootCA.crt
new_certs_dir = $dir/certs
serial = $dir/db/crt.srl
database = $dir/db/db
default_md = sha256
policy = policy_any
email_in_dn = no
[ policy_any ]
domainComponent = optional
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = optional
emailAddress = optional
[ ca_ext ]
keyUsage = critical,keyCertSign,cRLSign
basicConstraints = critical,CA:true
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always
准备配置文件 CA-csr.conf
[ req ]
encrypt_key = no
default_bits = 2048
default_md = sha256
utf8 = yes
string_mask = utf8only
prompt = no
distinguished_name = ca_dn
[ ca_dn ]
0.organizationName = "XX"
organizationalUnitName = "ORG"
commonName = "CA"
准备脚本文件 1.generate.sh
# Prepare a directory for the root CA
mkdir rootCA
mkdir rootCA/certs,db,private
chmod 700 rootCA/private
touch rootCA/db/db
touch rootCA/db/db.attr
openssl req -newkey ec:<(openssl ecparam -name secp384r1) -nodes -keyout rootCA/private/rootCA.key -x509 -days 36500 -out rootCA/rootCA.crt -subj "..."
# Prepare a directory for the intermediate CA, where the private key of the CA certificate is stored.
mkdir CA
mkdir CA/certs,db,private
chmod 700 CA/private
touch CA/db/db
touch CA/db/db.attr
openssl req -newkey ec:<(openssl ecparam -name secp384r1) -config CA-csr.conf -out CA.csr -keyout CA/private/CA.key
# sign the certificate in the request with the root certificate:
openssl ca -config rootCA.conf -days 7650 -create_serial \\
-in CA.csr -out CA/CA.crt -extensions ca_ext -notext
# Link certificates together to have the certificate chain in one file:
cat CA/CA.crt rootCA/rootCA.crt >CA/CA.pem
(2)使用二级CA给服务器或者客户端颁发证书
准备脚本文件 ~/Desktop/temp/ca/1.generate.sh
# 服务器证书及密钥生成方法----直接生成服务器密钥及待签名证书
# 注意: CN 一定要写服务器所在的ip地址(本地测试用 本地测试127.0.0.1)或域名
openssl req -newkey ec:<(openssl ecparam -name secp384r1) -nodes -keyout node-prikey.pem -out node-req.csr -subj "...."
# 使用CA证书及密钥对服务器证书进行签名(有效期3650天):
openssl x509 -req -days 3650 -in node-req.csr -CA ca-cert.pem -CAkey ca-prikey.pem -CAcreateserial -out node-cert.pem.tmp
# 聚合证书(重要 注意顺序)
# 由于是二级CA颁发的证书,所以,服务器需要把根CA、二级CA等证书都要发送给浏览器,所以给到web服务器的证书是要一个聚合的证书
cat node-cert.pem.tmp ca-cert.pem | tee node-cert.pem
# -------------------------------
# 客户端证书及密钥生成方法----直接生成客户端密钥及待签名证书
# CN 可以填平台账户名或链上账户名
openssl req -newkey ec:<(openssl ecparam -name secp384r1) -nodes -keyout client-prikey.pem -out client-req.csr -subj "....."
# 使用CA证书及密钥对客户端证书进行签名(有效期3650天):
openssl x509 -req -days 3650 -in client-req.csr -CA ca-cert.pem -CAkey ca-prikey.pem -CAcreateserial -out client-cert.pem.tmp
# 聚合证书(重要 注意顺序)
cat client-cert.pem.tmp ca-cert.pem | tee client-cert.pem
(3)执行脚本
# 如果重新生成二级证书, 可把以下两个目录删除
rm -r rootCA
rm -r CA
source 1.generate.sh
# 把生成的二级ca证书与钥匙拷贝到使用处 (二级ca证书无法再颁发下一级ca证书)
以上是关于CA证书颁发以及SSH的用法的主要内容,如果未能解决你的问题,请参考以下文章