1.  根证书的申请
准备根证书
准备一些空目录和文件,作用如下:
certs/ 保存颁发的所有证书的副本
跟踪已颁发的证书,初始为空
opensslf openssl和根证书的配置文件
private/ CA证书的私钥
serial 最后一次颁发的证书的序列号,初始值01,也可以是00等其它值
opensslf内容如下,我一气儿弄了10年的有效期:
[ ca ]
default_ca = FwolfCA
[ FwolfCA ]
dir = /big2/tools/ca
certificate = $dir/cacert.pem
database = $
new_certs_dir = $dir/certs
private_key = $dir/private/cakey.pem
serial = $dir/serial
default_crl_days= 7
default_days = 3650
default_md = sha1
policy = FwolfCA_policy
x509_extensions = certificate_extensions
[ FwolfCA_policy ]
commonName = supplied
stateOrProvinceName = supplied
stateOrProvinceName = supplied
countryName = supplied
emailAddress = supplied
organizationName= supplied
organizationalUnitName = optional
[ certificate_extensions ]
basicConstraints= CA:false
# 下面是根证书的配置信息
[ req ]
default_bits = 4096
default_keyfile = /big2/tools/ca/private/cakey.pem
default_md = sha1
prompt = no
distinguished_name = root_ca_distinguished_name
x509_extensions = root_ca_extensions
[ root_ca_distinguished_name ]
commonName = Fwolf CA
stateOrProvinceName = The Earth
# countryName只能是两位字母
countryName = CN
emailAddress = one_mail_of_fwolf@gmail
#organizationName = Root Certification Authority
organizationName = Fwolf CA Root
[ root_ca_extensions ]
basicConstraints = CA:true
然后生成根证书:
$ openssl req -x509 -newkey rsa:4096 -out cacert.pem -outform PEM -days 3650 -config opensslf
会提示输入密码以及确认密码。生成好以后可以验证一下(说是验证,其实就是看看内容):
$ openssl x509 -in cacert.pem -text -noout
给自己颁发证书
$ openssl req -newkey rsa:4096 -keyout office.fwolf.key.pem -keyform PEM -out  q.pem -outform PEM -sha1
按提示输入两次密码,然后输入几项证书信息,注意其中organizationName必须输入,并且Common Name要和域名一致,比如:
Common Name (eg, YOUR name) []:*.fwolf免费ssl证书永久生成
就生成了私钥key文件和请求req文件,然后把req文件提交给CA根证书签署(盖章):
$ openssl ca -in q.pem -config opensslf
输入根证书的密码,就会在certs/目录下生成.pem证书文件,文件名以serial中的序号开头,信息会存储在中。
这样生成的证书,在apache中配置需要两条语句,分别指定证书和私钥:
SSLEngine On
SSLCertificateFile /big2/tools/ca/certs/pem
SSLCertificateKeyFile /big2/tools/ca/certs/office.fwolf.key.pem
其实这两个文件是可以合并为一个文件的:
$ cat office.fwolf.key.pem pem > office.fwolf.pem
然后在配置apache的时候就只需要一句了:
SSLEngine On
SSLCertificateFile /big2/tools/ca/certs/office.fwolf.pem
其它
去掉证书的口令
现在证书基本上就可以使用了,再返回来说一个问题,就是在启动apache的时候会提示输入私钥的口令,要想去掉这个(一般都不会喜欢这样的),就要求在生成私钥的时候不要设置口令:
$ openssl req -newkey rsa:4096 -keyout office.fwolf.key.pem -keyform PEM -out  q.pem -outform PEM -sha1 -nodes
生成根证书的时候还是建议带上个口令,提高安全性。