码迷,mamicode.com
首页 > 编程语言 > 详细

Https、OpenSSL自建CA证书及签发证书、nginx单向认证、双向认证及使用Java访问

时间:2017-08-14 12:11:01      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:get   ca.sh   -o   open   bsp   http   blank   位置   create   

0.环境

技术分享

安装了nginx,安装了openssl

 

1.配置和脚本

先创建一个demo目录(位置自己选择,我选择建在nginx的目录下):

mkdir /etc/nginx/ca-demo
cd /etc/nginx/ca-demo

修改SSL配置openssl.cnf(也可能是openssl.conf,不知道在哪可以用find -name / openssl.cnf查找)

将dir属性改成你上一步自建的目录,不要用相对路径,会踩坑,保存,如图:

技术分享

我喜欢自动化,所以写了三个如下脚本,可以直接使用:

ca.sh:

#!/bin/bash

#Create directory hierarchy.创建目录结构
touch index.txt serial
chmod 666 index.txt serial
echo 01 >  serial
mkdir -p newcerts private

#生成RSA密钥对 openssl genrsa
-des3 -out ./private/cakey.pem 2048 #openssl req -new -days 365 -key ./private/cakey.pem -out ca.csr #openssl ca -selfsign -in ca.csr -out ca.crt # one step.一步生成csr,crt,直接10年使用期 openssl req -new -x509 -days 3650 -key ./private/cakey.pem -out ca.crt

server.sh:

#!/bin/bash
# 签发服务器证书
mkdir server
openssl genrsa -out ./server/server.key
openssl req -new -key ./server/server.key -out ./server/server.csr
openssl ca -in ./server/server.csr -cert ./ca.crt -keyfile ./private/cakey.pem -out ./server/server.crt -days 3650

client.sh:

#!/bin/bash
# 签发client证书
mkdir client
openssl genrsa -des3 -out ./client/client.key 2048
openssl req -new -key ./client/client.key -out ./client/client.csr
openssl ca -in ./client/client.csr -cert ./ca.crt -keyfile ./private/cakey.pem -out ./client/client.crt -config "/etc/ssl/openssl.cnf"
openssl pkcs12 -export -clcerts -in ./client/client.crt -inkey ./client/client.key -out ./client/client.p12

以上三个脚本都可以在 https://github.com/dreamingodd/CA-generation-demo  找到

将以上三个脚本复制到自建demo目录中,如下所示:

技术分享

加入运行权限:

chmod +x *.sh

结果如下:

技术分享

 

 

 

未完待续...

To be Continued...

Https、OpenSSL自建CA证书及签发证书、nginx单向认证、双向认证及使用Java访问

标签:get   ca.sh   -o   open   bsp   http   blank   位置   create   

原文地址:http://www.cnblogs.com/dreamingodd/p/7357029.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!