openssl在Linux下编译和自签名证书制作

kipway@kipway.com

2017.9.3

本文的内容在openssl的文档中都能找到,为了便于使用,特记录于此。以下使用openssl 1.0.2L长周期支持版,系统为ubuntu1404

1.编译openssl

采用默认方式就行了。

./config
make
make test
make install
成功后,会安装在/usr/local/ssl目录中。

2.配置openssl工具

在~/目录下建立一个ca目录,将openssl1.0.2L中apps/demoCA目录拷贝到~/ca目录,并在创建ca/demoCA/newcerts子目录,一切使用默认配置,以下的操作终端窗口命令行当前目录均在~/ca目录中。

3.制作自签名根证书

制作自己的根证书,本例为cakipway:

# 创建根证书的RSA private key 文件
openssl genrsa -out cakipway.key 2048   
# 创建根证书申请csr文件
openssl req -new -key cakipway.key -out cakipway.csr  
# 创建自签名根证书
openssl x509 -req -days 3650 -in cakipway.csr -signkey cakipway.key -out cakipway.crt 
# 转换证书格式pem->der,用于TLS协议中传输
openssl x509 -in cakipway.crt -outform der -out cakipway.cer

4.制作和签发服务器证书

本例制作一个srv_h58服务器证书,使用上面的cakipway签发。

#创建服务器private key
openssl genrsa -out srv_h58.key 2048
#创建服务器证书申请
openssl req -new -key srv_h58.key -out srv_h58.csr
#使用cakipway.crt签发服务器证书
openssl ca -days 3650 -in srv_h58.csr -out srv_h58.crt -cert cakipway.crt -keyfile cakipway.key
# 转换证书格式pem->der,用于TLS协议中传输
openssl x509 -in srv_h58.crt -outform der -out srv_h58.cer
制作srv_h58.csr时会要求输入一些参数,如实填写就行了,注意Common Name要填写服务器的IP(局域网使用IP)或网站的域名:
Common Name (e.g. server FQDN or YOUR name) []:192.168.1.58

5.自签发证书在局域网应用

https网站或者wss服务在服务端安装服务器证书srv_h58.cer 和private key srv_h58.key(注意保密)使用。

由于是我们自己签发的,默认条件下FireFox是不会认的。 打开选项->高级->证书->查看证书->证书机构->导入根证书cakipway.crt->确定。这样FireFox访问由cakipway签发的证书的https网站就是绿色安全标志了。