归档文章 (2011-2017)

date
2011/01/11
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)建议为空值。
notion imagenotion image
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
特别注意!!
  • 国家、省要与上面CA证书一致,否则签署时必然要失败。
  • Common Name 此时相当重要,请输入你需要SSL支持的域名,如 localhost(域名只能一个),否则浏览器提示证书错误。(多域名证书)
notion imagenotion image

3.3、签署服务器证书

cd .. openssl ca -in demoCA/crl/server.csr -out demoCA/certs/server.crt
notion imagenotion image
If you have any questions, please contact me.