SSL证书相关技巧 -- 玩转自签名证书

简介:

引入:

如果自己搭建局域网的应用的话,我们是没必要向证书颁发机构购买证书的。因为如果什么证书都能颁发证书的机构买的话,一来价格不菲,二来,在小型局域网应用中,因为使用者群体都是指定的人,所以不存在问题,所以我们完全可以自己签发一个安全证书。这种情况下,对于证书的信任就不是靠CA去认可了,而完全取决于局域网内部彼此的信任,比如我自己签发了一个证书,如果大家信任我,那么他们当然就会把私密数据通过SSL通道发送到我架设的服务器上,如果大家不信任我,那么他们就不会把私密数据通过SSL通道发送到我架设的服务器上。


分析:

从上述的简单说明中可以看出,如果是自签名的证书的话,证书安全性的校验不由权威机构负责,而是我们自己来负责。我这里来实践下。


首先,我们建立自签名的证书(这里尤其要注意的是,CN必须和服务器所在的计算机名一样):

比如,我的机器的计算机名是Charles:

wKiom1LviXDzfbA9AACR5M030Hg506.jpg


那么我们证书的CN也必须为Charles:


wKioL1LviZLBmVK4AAGZmFGGJp4732.jpg


我们查看证书确保和我们设想一致:

wKiom1LvifDSvM8yAAHeMhxR5kA346.jpg

因为我们的服务器使用tomcat(假定),所以我们需要在HTTPS的连接器(Connector)上来启用这个证书,为了简单起见,我们把clientAuth仍然保留默认值"false",来表明我们用的是最简单的是单向认证。

wKioL1LvikDDnCpQAAIAHFckuy4528.jpg


这时候,我们启动tomcat,利用https访问首页,因为我们启用了https,并且用了自己签名的证书,所以第一次访问肯定受到浏览器的保护:

wKiom1Lviqrxq5kFAAG73LXRT5s172.jpg



这个合情合理,因为就算在局域网中,也不是所有人都认识我Charles的,他们凭什么要把敏感数据发送到我架设的服务器处理呢?


现在假定局域网中要访问我的网站的用户都认识我了,也知道我是个好人,我的网站是正当网站,那么他们如何让他们自己的浏览器解除对于我架设的网站的HTTPS访问限制呢?


显然就用老办法,只要我把我的证书分享给局域网中每一个信任我的用户,然后让他们自己把我的证书文件导入到他们操作系统的证书管理器的“受信任的根证书颁发机构”就可以了,这样他们就知道,我颁发的证书对于他们来说是信任的。


为此,我需要先导出证书,因为我这里证书用的扩展名是.keystore,我必须导出为X.509证书的形式(扩展名为cer或者crt),我的用户才可以导入这个证书到他们证书管理器。


于是我导出证书为X.509证书:

wKioL1Lvi-XCMcR1AADo1ezIwbE716.jpg


然后通过某种方式(要么共享文件,要么邮件或者samba服务器等), 把我的证书分享给大家。


这时候,局域网内名叫“张三”的用户只要打开他操作系统的证书管理器,添加我提供的证书文件(crt或者cer文件)就可以了,方法是:右击“受信任的根证书颁发机构”->证书-> 所有任务->导入 :

wKiom1LvjKHwU9CGAAcLVtU_GFg543.jpg


然后选择我提供给张三的证书文件(cer或者crt文件):

wKioL1LvjNKy4Uh8AAIyDv09CvI882.jpg


这时候,张三再访问我架设的服务器 (https://charles:8443/),就会发现地址栏上的锁是绿色的了:

wKiom1LvjUWAp9VwAAFCUz3FCAI605.jpg



总结:


1.面向局域网的应用无需向证书颁发机构购买证书,使用自签名的证书就可以了。

2.在局域网内部利用HTTPS访问自签名的证书的网站,其网站的合法性不由权威的CA认证,而是由彼此的信任来保证。

3.为了让服务器开启https,必须在对应的连接器上配置证书文件和密码,并且可以启用单向加密或者双向加密。

4.当建立信任后,如果希望局域网内部的其他用户访问此站点不受到操作系统的限制,需要让用户依次导入对应证书并且将其设为“受信任的根证书颁发机构”。

5.因为自己签名的证书格式不能被直接导入,所以它必须先导出为X.509证书规定的格式,然后才可以被目标用户系统的证书管理器正确导入。






本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/1355870,如需转载请自行联系原作者
目录
相关文章
|
存储 应用服务中间件 Linux
centos7-自制SSL自签名证书
centos7-自制SSL自签名证书
2114 0
|
网络安全 数据安全/隐私保护 应用服务中间件
轻松把玩HttpClient之配置ssl,采用设置信任自签名证书实现https
在上篇文章《HttpClient配置ssl实现https简单示例——绕过证书验证》中简单分享了一下如何绕过证书验证。如果你想用httpclient访问一个网站,但是对方的证书没有通过ca认证或者其他问题导致证书不被信任,比如12306的证书就是这样的。
3203 0
|
2月前
|
域名解析 应用服务中间件 Linux
【服务器】使用域名解析服务器的IP地址并配置SSL证书
【服务器】使用域名解析服务器的IP地址并配置SSL证书
426 0
|
2月前
|
前端开发 应用服务中间件 Linux
nginx解决springcloud前后端跨域问题,同时配置ssl
nginx解决springcloud前后端跨域问题,同时配置ssl
|
7月前
|
存储 Java 网络安全
SpringCloud GateWay配置(TLS 和 SSL、Http超时配置)—官方原版
SpringCloud GateWay配置(TLS 和 SSL、Http超时配置)—官方原版
216 0
|
6月前
|
应用服务中间件 网络安全 nginx
Nginx学习研究-Nginx 安装 SSL 配置 HTTPS
Nginx学习研究-Nginx 安装 SSL 配置 HTTPS
267 0
|
2天前
|
安全 应用服务中间件 网络安全
SSL原理、生成SSL密钥对、Nginx配置SSL
现在,你的Nginx虚拟主机应该已经配置了SSL,可以通过HTTPS安全访问。确保在生产环境中使用有效的SSL证书来保护通信的安全性。
9 0
|
15天前
|
域名解析 网络协议 应用服务中间件
阿里云SSL证书配置(HTTPS证书配置)
该内容是一个关于如何在阿里云上准备和购买SSL证书,以及如何为网站启用HTTPS的步骤指南。首先,需要注册并实名认证阿里云账号,然后在SSL证书控制台选择证书类型、品牌和时长进行购买。申请证书时填写域名信息,并进行DNS验证,这包括在阿里云域名管理板块添加解析记录。完成验证后提交审核,等待证书审核通过并下载Nginx格式的证书文件。最后,将证书配置到网站服务器以启用HTTPS。整个过程涉及账户注册、实名认证、证书购买、DNS设置和证书下载及安装。
78 0
|
27天前
|
前端开发 应用服务中间件 网络安全
http转为https,ssl证书安装及nginx配置
http转为https,ssl证书安装及nginx配置
43 1