网络服务与安全之openSSL制作CA证书

在网络中,数据在服务器端与客户端之间传递,为了保证数据安全,需要将数据进行加密后再传输,这样即使数据被窃取,窃听者也无法知道数据的真实内容。

当前的网络服务中,使用TLS来加密。应用层在TLS之上,使得在数据传到应用层之前就已经完成了加密和解密的过程。

  1. 相关概念:

SSL(secure sockets layer:安全套接字

TLS(transport layer security):安全传输层协议

CAcertificate authority):认证中心:

CSR(certificate signing request):签名证书请求文件-用于向CA申请数字签名

2、Openssl一个开源项目,作为一个多用途的命令行工具,包括如下命令:

enc:对称加密

dgst:单向加密

passwd:生成密码

rand:生成随机数

genrsa:生成私钥

rsa:提取公钥(从生成的私钥中提取)

x509:自签证书

req:CSR证书请求文件生成(通过私钥文件生成)

3、证书生成过程(以自签名证书为例)

(1)生成流程:

CA机构:(1)生成私钥(2)用私钥生成csr文件(3)生成自签名证书

服务器:(2)生成私钥(2)生成csr文件(3)用CA的相关信息生成签名证书

(2)req命令参数说明:

-new 生成一个新的证书请求文件

-key:指定已有的秘钥文件生成秘钥请求,与-new配合

-out:指定输出文件,为证书请求文件

-newkkey:与-key互斥,生成证书请求文件时自动生成秘钥,其名称由-keyout指定

-nodes :如果指定-newkey自动生成秘钥,那么-nodes选项说明生成的秘钥不需要加密

-x509:创建一个证书文件

(3)x509命令参数

-signkey:指定签名秘钥(须为私钥),并使得由-in 提供的输入文件转成自签名的证书

-req :输入是一个证书请求,签名并输出

4、具体命令

生成 CA 私钥openssl genrsa -out ca.key 1024,其中,1024表示私钥位数

生成 CA 证书签名文件:openssl req -new -key ca.key -out ca.csr

生成 CA 根证书(公钥):openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt

【直接生成 CA 根证书(公钥),相当于上面两条命令一起执行了】:

openssl req -new -x509 -key ca.key -out ca.crt

制作生成网站的证书并用CA 签名认证

生成证书私钥:openssl genrsa -out server.pem

制作解密后的证书私钥:openssl rsa -in server.pem -out server.key

生成签名请求文件:openssl req -new -key server.pem -out server.csr

用CA 进行签名,制作证书:openssl x509 -req -ca ca.crt -CAkey ca.key -in server.csr -out server.crt

5、Nginx配置

监听443端口,并配置ssl_certificate_key 和 ssl_certificate 

具体配置示例:

server{

listen 443;

ssl on;

ssl_certificate_key      server.key;
ssl_certificate         server.crt;

ssl_session_cache    shared:SSL:1m;
ssl_session_timeout  5m;

ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
ssl_prefer_server_ciphers  on;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

}

配置完成后,重新启动Nginx,就可以用https访问了。(注意location的配置,能正常访问就行)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值