导航
导航
文章目录
  1. 一、准备工作
  2. 二、CA 根证书
    1. 2.1、生成CA根证书私钥
    2. 2.2、生成CA根证书
  3. 三、SSL 服务器证书
    1. 3.1、生成服务器证书私钥
      1. 3.2、生成服务器证书请求文件
      2. 3.3、签署服务器证书

Linux 系统 OpenSSL 证书生成

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

特别注意!!

  • 国家、省要与上面CA证书一致,否则签署时必然要失败。
  • Common Name 此时相当重要,请输入你需要SSL支持的域名,如 localhost(域名只能一个),否则浏览器提示证书错误。(多域名证书)

3.3、签署服务器证书

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

支持一下
扫一扫,支持一下