项目后台服务器采用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错误。

nginx+ssl 服务器 双向认证的更多相关文章

  1. java中关于SSL/TSL的介绍和如何实现SSL Socket双向认证

    一.        SSL概述 SSL协议采用数字证书及数字签名进行双端实体认证,用非对称加密算法进行密钥协商,用对称加密算法将数据加密后进行传输以保证数据的保密性,并且通过计算数字摘要来验证数据在传 ...

  2. java实现ssl单/双向认证通信[推荐]

    java实现ssl单/双向认证通信[推荐] 学习了:https://blog.csdn.net/zbuger/article/details/51695582 学习了:https://www.cnbl ...

  3. Nginx配置https双向认证

    1.      前期的准备工作: 安装openssl和nginx的https模块 cd ~/ mkdir ssl cd ssl mkdir demoCA cd demoCA mkdir newcert ...

  4. windows下tomcat+nginx+openssl配置双向认证

    1. 基础知识 CA证书:https://blog.csdn.net/yangyuge1987/article/details/79209473 SSL双向认证原理:https://blog.csdn ...

  5. iOS + Nodejs SSL/Https双向认证

    移动互联网的大力发展,安全越来越重要. 什么是双向认证呢?双向认证就是client要验证server的合法性,同一时候server也要验证client的合法性. 这样两方都相互验证,提高安全性. 关于 ...

  6. php实现https(tls/ssl)双向认证

    php实现https(tls/ssl)双向认证 通常情况下,在部署https的时候,是基于ssl单向认证的,也就是说只要客户端认证服务器,而服务器不需要认证客户端. 但在一些安全性较高的场景,如银行, ...

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

    0.环境 本文的相关源码位于 https://github.com/dreamingodd/CA-generation-demo 必须安装nginx,必须安装openssl,(用apt-get upd ...

  8. SSL双向认证和SSL单向认证的流程和区别

    refs: SSL双向认证和SSL单向认证的区别https://www.jianshu.com/p/fb5fe0165ef2 图解 https 单向认证和双向认证!https://cloud.tenc ...

  9. 使用wireshark观察SSL/TLS握手过程--双向认证/单向认证

    SSL/TLS握手过程可以分成两种类型: 1)SSL/TLS 双向认证,就是双方都会互相认证,也就是两者之间将会交换证书.2)SSL/TLS 单向认证,客户端会认证服务器端身份,而服务器端不会去对客户 ...

随机推荐

  1. js强制将页面放到最大

    <!DOCTYPE html> <html> <head> <title></title> <script language=&quo ...

  2. 第28月第4天 __bridge_transfer

    1. /* NSObject.h Copyright (c) 1994-2018, Apple Inc. All rights reserved. */ #if __has_feature(objc_ ...

  3. 第25月第26天 dispatch_group_t dispatch_semaphore_t

    1. dispatch_group_enter(group); dispatch_group_leave(group); dispatch_group_notify(group1, queue1,bl ...

  4. visual studio code运行时报错,无法将“cnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称,Cannot find module 'webpack'

    前言 因公司技术需求,这段时间成功进入了Vue 2.0 的坑,刚用起Visual Studio Code,却发现问题很多,发现一个错误:cnpm : 无法将“cnpm”项识别为 cmdlet.函数.脚 ...

  5. Unicode与Ansi互转

    BOOL CTool::AnsiToUnicode(const char *pSrc, CString &strResult) { #ifndef _UNICODE return FALSE; ...

  6. 基于netty实现单聊、群聊功能

    学习资料 https://juejin.im/book/5b4bc28bf265da0f60130116/section/5b6a1a9cf265da0f87595521 收获: 转载 1. Nett ...

  7. 自动安装gulpfile中所有依赖的模块

    在gulpfile.js中定义任务的时候,需要引用不同的模块,这些模块需要使用 npm install --save-dev 命令进行安装,非常的繁琐.可以使用一个名为gulpfile-install ...

  8. 微信小程序之内嵌网页(webview)

    设置权限 要在小程序中访问外部网页,需要先设置允许访问的业务网站的域名.让我们先登录小程序平台管理后台页面,进入“设置” => "开发设置",可以看到这边多出来了一块“业务域 ...

  9. eMMC基础技术1:MMC简介

    [转]http://www.wowotech.net/basic_tech/mmc_sd_sdio_intro.html 1. 前言 熟悉Linux kernel的人都知道,kernel使用MMC s ...

  10. 在Linux下误删文件后恢复【转】

    针对日常维护操作,难免会出现文件误删除的操作.大家熟知linux文件系统不同win有回收站,删除后的文件可以到垃圾箱寻回,要知道linux文件修复比较费劲,网络上面的文档也是五花八门.所以本次研究一种 ...