nginx 是一个很强大的高性能web和反向代理服务,它具有很多非常优越的特性。在连接高并发的情况下,nginx是apache服务不错的替代品:nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。
nginx作为负载均衡服务:nginx 既可以在内部直接支持 rails 和 php 程序对外进行服务,也可以支持作为 http代理服务对外进行服务。nginx采用c进行编写,不论是系统资源开销还是cpu使用效率都比 perlbal 要好很多。
ssl(secure sockets layer 安全套接层),及其继任者传输层安全(transport layer security,tls)是为网络通信提供安全及数据完整性的一种安全协议。tls与ssl在传输层对网络连接进行加密。
本文将讲述nginx+ssl实现双向认证的示例代码
首先创建一个目录
cd /etc/nginx
mkdir ssl
cd sslca与自签名
制作ca私钥
openssl genrsa -out ca.key 2048
制作 ca 根证书(公钥)
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
注意:
1、common name 可以随意填写2、其他需要填写的信息为了避免有误,都填写 . 吧服务器端证书
制作服务器端私钥:
openssl genrsa -out server.pem 1024
openssl rsa -in server.pem -out server.key生成签发请求:
openssl req -new -key server.pem -out server.csr
注意:
1、common name 得填写为访问服务时的域名,这里我们用 usb.dev 下面 nginx 配置会用到2、其他需要填写的信息为了避免有误,都填写 . 吧(为了和 ca 根证书匹配)用ca签发
openssl x509 -req -sha256 -in server.csr -ca ca.crt -cakey ca.key -cacreateserial -days 3650 -out server.crt
客户端证书
与服务端证书类似
注意:
1、common name可以随意填写2、其他需要填写的信息为了避免有误,都填写 . 吧(为了和 ca 根证书匹配)至此需要的证书都弄好了,我们可以开始配置 nginx 了。
nginx配置
server {
listen 443;
server_name usb.dev;
index index.html;
root /data/test/;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_client_certificate /etc/nginx/ssl/ca.crt;
ssl_verify_client on;
}请求验证
验证过程可以选择在其他机器或是本机,为了能够解析 usb.dev,还需要配置一下 /etc/hosts:
ip地址 usb.dev
如果用浏览器验证,需要把客户端证书导出成 p12 格式的
openssl pkcs12 -export -clcerts -in client.crt -inkey client.pem -out client.p12
从服务器上将几个证书下载下来,然后安装到可信的证书列表,点击刚才生成的p12文件输入证书的密码将安装至个人列表。
然后关闭浏览器,重新输入域名,会出现ssl双向验证的证书提示。选择证书即可。
用户名提交的备案申请请帮我退回我需要修改过期双拼域名推荐:“飞狼”、“尊茂”等域名即将删除这个服务器国内的能访问-云服务器问题无法访问此网站找不到的服务器地址怎么发送文件到云服务器上电信云服务器多少钱安徽云服务器租用云主机虚拟主机购买哪里便宜