OpenSSL 证书生成主要有三步,1、管理员生成“证书私钥‘,然后用私钥生成一份“证书请求文件“(.csr)2、管理员将“证书请求文件“交给商业性CA签署,比如 Verisign 形成正式证书。3、管理员在服务器上导入这个证书。

一、准备工作

根据 OpenSSL 默认配置文件,新建相应目录结构。当然你也可以修改配置文件[ca_default]部分,指定相应目录。


sudo vim /usr/local/ssl/openssl.cnf  (选做,修改配置文件)


mkdir -p /usr/local/ssl/demoCA  cd /usr/local/ssl/demoCA  mkdir private crl certs newcerts  echo '01' > serial #在demoCA目录下新建serial文件并写入01。  touch index.txt #在demoCA目录下新建index.txt的空文件


二、CA 根证书

2.1、生成CA根证书私钥

生成 CA 根证书 RSA 私钥,openssl genrsa 支持 des3 参数,更多内容《OpenSSL 之 genrsa 命令》


openssl genrsa -out private/cakey.pem 1024 #生成CA认证中心 RSA 私钥


2.2、生成CA根证书

利用CA私钥,生成自签署的CA证书这一步很关键,也很容易出现问题。首先相应目录结构和文件一定要准备好,然后证书格式请选择pem而非crt,另外所在目录是demoCA。


openssl req -new -x509 -key private/cakey.pem  -out cacert.pem


特别注意!!

国家、省、组织名一定要填写不能为空,且记住你填写的值,其他的(包括Common Name)建议为空值。



Country Name (2 letter code) [AU]:(国家)  State or Province Name (full name) [Some-State]:(洲/省)  Locality Name (eg, city) []:(城/镇)  Organization Name (eg, company) [Internet Widgits Pty Ltd]:(组织名)  Organizational Unit Name (eg, section) []:(单位名)  Common Name (eg, YOUR name) []:(httpd-ssl.conf中的ServerName 名称)  Email Address []:(邮箱)


三、SSL 服务器证书

3.1、生成服务器证书私钥


openssl genrsa -out private/server.key 1024


3.2、生成服务器证书请求文件

利已生成的服务器证书私钥,生成服务器证书请求csr文件


openssl req -new -key private/server.key -out crl/server.csr


特别注意!!

1、国家、省要与上面CA证书一致,否则签署时必然要失败。

2、 Common Name 此时相当重要,请输入你需要SSL支持的域名,如 localhost(域名只能一个),否则浏览器提示证书错误。(多域名证书)


3.3、签署服务器证书


cd ..  openssl ca -in demoCA/crl/server.csr -out demoCA/certs/server.crt



 

要获得 pem格式证书步骤:

将ca的key文件和crt文件 考出,将cat key文件 >> crt文件 ,重命名为pem

client 和server相同。

 -des3 -out server.key 1024  则是要进行加密 的。。未完待续!!!