1 数字证书使用的场合
●加密传输
●机器比较固定
●使用USB Key
2 数字证书的颁发
2.1
概述
数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。证书授权中心(CA)对证书的数字签名过程即为证书的颁发过程。
CA非常重要!企业范围内,建议自建CA,或者采用可信任的证书颁发机构的ROOT CA。
下面介绍使用Openssl(http://www.openssl.org)结合JDK自带的keytool工具来产生CA证书、服务器证书以及可导入浏览器的KCS#12格式个人证书。
2.2
创建自签名CA
设置系统环境变量Path指向Openssl的bin目录
建立工作目录:
mkdir ca
cd ca
2.2.1 生成ca私钥
openssl dsaparam -out dsaparam 1024
openssl gendsa -out cakey.pem dsaparam
2.2.2 生成ca待签名证书
openssl req -new -out ca-req.csr -key cakey.pem -config ..\openssl.cnf //-config ..\openssl.cnf may remove
2.2.3用CA私钥进行自签名,得到自签名的CA根证书
openssl x509 -req -in ca-req.csr -out ca-cert.cer -signkey cakey.pem -days 365
至此,自签名CA根证书制作完毕。当前目录下将产生四个文件,分别是:
●ca-cert.cer
●ca-req.csr
●cakey.pem
●dsaparam
生成CA根证书
openssl pkcs12 -export -clcerts -in ca-cert.cer -inkey cakey.pem -out ca.p12
2.2.4 openssl.cnf
配置文档
#
# SSLeay example configuration file.
# This is mostly being used for generation of certificate requests.
#
RANDFILE = .rnd
####################################################################
[ ca ]
default_ca= CA_default
# The default ca section
####################################################################
[ CA_default ]
dir = ssl
certs = $dir\certs
crl_dir = $dir\crl
database = $dir\index.txt
new_certs_dir = $dir
certificate = $dir\cacert.pem
serial = $dir\serial
crl = $dir\crl.pem
private_key = $dir\privkey.pem
RANDFILE = $dir\privkey.rnd
# For the CA policy
[ policy_match ]
countryName= optional
stateOrProvinceName= optional
organizationName= optional
organizationalUnitName= optional
commonName= supplied
emailAddress= optional
# For the 'anything' policy
# At this point in time, you must list all acceptable 'object'
# types.
[ policy_anything ]
countryName= optional
stateOrProvinceName= optional
localityName= optional
organizationName= optional
organizati
●加密传输
●机器比较固定
●使用USB Key
2 数字证书的颁发
2.1
概述
数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。证书授权中心(CA)对证书的数字签名过程即为证书的颁发过程。
CA非常重要!企业范围内,建议自建CA,或者采用可信任的证书颁发机构的ROOT CA。
下面介绍使用Openssl(http://www.openssl.org)结合JDK自带的keytool工具来产生CA证书、服务器证书以及可导入浏览器的KCS#12格式个人证书。
2.2
创建自签名CA
设置系统环境变量Path指向Openssl的bin目录
建立工作目录:
mkdir ca
cd ca
2.2.1 生成ca私钥
openssl dsaparam -out dsaparam 1024
openssl gendsa -out cakey.pem dsaparam
2.2.2 生成ca待签名证书
openssl req -new -out ca-req.csr -key cakey.pem -config ..\openssl.cnf //-config ..\openssl.cnf may remove
2.2.3用CA私钥进行自签名,得到自签名的CA根证书
openssl x509 -req -in ca-req.csr -out ca-cert.cer -signkey cakey.pem -days 365
至此,自签名CA根证书制作完毕。当前目录下将产生四个文件,分别是:
●ca-cert.cer
●ca-req.csr
●cakey.pem
●dsaparam
生成CA根证书
openssl pkcs12 -export -clcerts -in ca-cert.cer -inkey cakey.pem -out ca.p12
2.2.4 openssl.cnf
配置文档
#
# SSLeay example configuration file.
# This is mostly being used for generation of certificate requests.
#
RANDFILE = .rnd
####################################################################
[ ca ]
default_ca= CA_default
# The default ca section
####################################################################
[ CA_default ]
dir = ssl
certs = $dir\certs
crl_dir = $dir\crl
database = $dir\index.txt
new_certs_dir = $dir
certificate = $dir\cacert.pem
serial = $dir\serial
crl = $dir\crl.pem
private_key = $dir\privkey.pem
RANDFILE = $dir\privkey.rnd
# For the CA policy
[ policy_match ]
countryName= optional
stateOrProvinceName= optional
organizationName= optional
organizationalUnitName= optional
commonName= supplied
emailAddress= optional
# For the 'anything' policy
# At this point in time, you must list all acceptable 'object'
# types.
[ policy_anything ]
countryName= optional
stateOrProvinceName= optional
localityName= optional
organizationName= optional
organizati