nginx+ssl 服务器 双向认证

时间:2023-01-19 21:20:31

项目后台服务器采用nginx+tomcat 负载均衡架构  不久 访问协议有http升级为https

对服务器认证采用沃通的ssl证书

nginx ssl证书安装 参照沃通官方文档

他们有技术支持沟通起来也很方便,但是他们只提供单项认证,没有服务器对客户端的认证

服务器对客户端的认证(如果项目网站需要)是需要我们自己来处理

记录如下:

第一步:

cd  ~/

mkdir ssl

cd ssl

mkdir demoCA

cd demoCA

mkdir newcerts

mkdir private

touch index.txt

echo '01' > serial

第二步:

制作CA根证书,下面的证书都需要它来签名。

命令:openssl genrsa -des3 -out ca.key 2048

这样是生成rsa私钥,`des3`算法,openssl格式,2048位强度。`ca.key`是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。

生成 CA根证书的公钥 ca.crt:

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

这一步会提示你输入国家、省、市、公司等名字随便你填写就行 服务器名字不要乱写

Common Name (e.g. server FQDN or YOUR name) []:   这里要填写你服务器域名(xxx.com)

一下再次遇见这样情况均和该步骤雷同

第三步:制作客户端证书

开始制作客户端证书

客户端私钥

命令:openssl genrsa -des3 -out client.pem 2048

生成客户端证书请求

命令:openssl req -new -key client.pem -out client-req.csr

CA签名客户端证书请求

命令:openssl ca -policy policy_anything -days 1460 -cert ca.crt  -keyfile ca.key -in client-req.csr -out client.crt

客户端证书CRT转换为 PKCS #12格式(全称应该叫做 Personal Information Exchange,通常以 p12作为后缀):

命令:openssl pkcs12 -export -clcerts -in client.crt -inkey client.pem -out client.p12

结束

安装客户端证书

将生成的client.p12 下载到本地电脑 点击输入密码安装

清理浏览器缓存,关闭浏览器重新打开,输入网址后会提示你导入证书,导入后网址才能正常访问不然会出现400错误。