Category Archives: CA

申请证书-1

申请SSL证书,首先要生成证书请求文件CSR,一般的方式是在你要安装的ssl证书的服务器上生成该文件,下面是在linux服务器上生成CSR和key密钥文件的方法,登录服务器后: 输入如下命令 ,然后回车,这将生成key 和 CSR,以下命令中的域名可以替换成你自己的域名,。

openssl req -out www_cheapssl_cn.csr -new -sha256 -newkey rsa:2048 -nodes -keyout www_cheapssl_cn.key

以上是生成CSR的命令, 以下是整个生成CSR的过程,以供参考。

[root@lala ~]# openssl req -out www_cheapssl_cn.csr -new -sha256 -newkey rsa:2048 -nodes -keyout www_cheapssl_cn.key
Generating a 2048 bit RSA private key
……………………………………………………………….+++
……………………………………………+++
writing new private key to ‘www_cheapssl_cn.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [XX]:CN //国家 中国填写CN
State or Province Name (full name) []: Guangdong //省
Locality Name (eg, city) [Default City]: Guangzhou //市
Organization Name (eg, company) [Default Company Ltd]: Cheapssl //填写组织或企业名称 ,如果是个人随便填写 一般填写英语或拼音
Organizational Unit Name (eg, section) []: IT //部门
Common Name (eg, your name or your server’s hostname) []: www.cheapssl.cn //这个最重要 填写要申请证书的域名
Email Address []: admin@cheapssl.cn //邮箱 Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: //不用填写 回车即可
An optional company name []: //不用填写 回车即可

完成后将生成两个文件 www_cheapssl_cn.csr 和 www_cheapssl_cn.key ,打开www_cheapssl_cn.csr ,复制里面所有代码,用于申请证书 ,保存好 www_cheapssl_cn.key ,安装的时候要用到这个文件。

from:在Linux服务器或VPS上生成CSR(证书请求文件)

refer:

Generate a CSR for Apache with OpenSSL

OpenSSL CSR Creation for Apache

生成CSR证书请求文件

常用Openssl命令

 

密钥数字签名和证书

原文网址:http://www.youdzone.com/signature.html

1.

鲍勃有两把钥匙,一把是公钥,另一把是私钥。

2.

鲍勃把公钥送给他的朋友们—-帕蒂、道格、苏珊—-每人一把。

3.

苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。

4.

鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。

5.

鲍勃给苏珊回信,决定采用”数字签名”。他写完后先用Hash函数,生成信件的摘要(digest)。

6.

然后,鲍勃使用私钥,对这个摘要加密,生成”数字签名”(signature)。

7.

鲍勃将这个签名,附在信件下面,一起发给苏珊。

8.

苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。

9.

苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。

10.

复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成”数字签名”,写信给苏珊,让苏珊用假的鲍勃公钥进行解密。

11.

后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找”证书中心”(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成”数字证书”(Digital Certificate)。

12.

鲍勃拿到数字证书以后,就可以放心了。以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。

13.

苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明”数字签名”是否真的是鲍勃签的。

14.

下面,我们看一个应用”数字证书”的实例:https协议。这个协议主要用于网页加密。

15.

首先,客户端向服务器发出加密请求。

16.

服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端。

17.

客户端(浏览器)的”证书管理器”,有”受信任的根证书颁发机构”列表。客户端会根据这张列表,查看解开数字证书的公钥是否在列表之内。

18.

如果数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用,浏览器会发出警告。

19.

如果这张数字证书不是由受信任的机构颁发的,浏览器会发出另一种警告。

20.

如果数字证书是可靠的,客户端就可以使用证书中的服务器公钥,对信息进行加密,然后与服务器交换加密信息。

from:http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

如何理解谷歌浏览器的安全警告信息

最近如果使用Chrome访问国内的很多网站的时候,比如exmail.qq.com, 你可能会注意到这样一个对话框,这个是什么意思?访问链接没有私密性吗? 等等,这里好像有点不对, 网页私密性到底是个啥,为啥会提醒我这个问题,我不是已经输了密码登录了嘛?事情要从头说起。

10081946_iTuw

我上个邮箱,连私密性都没有了,那里面的照片应该怎么办,以前修电脑没有私密性,现在连上网都没有私密性,难道我又要红了?

一、HTTPS (安全超文本协议)怎么来的?

1997 年 CERN发明HTTP 协议并用于万维网的时候,仅仅是为了在学术界内部做一个共享数据的平台, 并没有想到太多传输中的安全性。毕竟当年网络规模非常小,而计算机以及昂贵的网络设备并不是每个人都可以买得起的。

他们当然没有料到之后万维网居然成了一个信息传递的通用平台,一帮人甚至丧心病狂地在上面做起了Web电子邮箱、网络银行一类的服务。这类服务对安全性和私密性的要求都非常严格, 因为基本上没有人希望自己的银行密码,私人的邮件在传输中被第三方看到。

所以问题就来了, HTTP 是明文传输的。 HTTP倒是支持密码认证,只是不巧的是,密码也是明文传的。

针对这种情况,在网景一帮科学家,特别是 Dr. Taher Elgamal (号称SSL 之父)的努力下, HTTPS 横空出世了。

HTTPS 里面,所有传输的数据都是加密过的,于是第三方无法在数据的传输过程中获得任何有用的数据,数据传输中的私密性自然得到了保证。

至少当初设计的目的是这样子。

HTTPS 并非是一个全新的协议,其实是在 HTTP的 基础上,加了 SSL (安全套接字)或者是后来的 TLS (传输安全协议)。 SSL/TLS 工作在 HTTP 之下, 负责加密所有传输的数据。

说个题外话,当时不仅仅是 HTTP,众多的互联网上层协议,即应用层协议,STMP 电子邮件协议 一类,大多都是明文传输的。而移动互联网或
者其他网络,都是基于一些标准的协议,就是TCP/IP协议簇。早期时候,这些协议是由互联网领域专家联合制定的,就像现在制定法律的过程一样。而经过实
际的验证,其不严谨性渐渐被发现,于是人们在此前的基础上进行不断更新,SSL/TLS就是这样出来的。 SSL/TLS
由于是工作在TCP层和应用层之间,它可以加密任何应用层协议,包括STMP一类。 从这个角度说来,网景对互联网的贡献其实是非常深远的。

HTTPS 使用非对称算法交换密钥,这个也是一个非常精巧的算法,有兴趣的同学可以点击这里了解下,号称是20世纪最重要的算法之一。

HTTPS 除了解决加密问题以外,还需要还解决另外一个问题: 网站真实身份鉴别

比如,如果你上招行网站,你怎么知道你上的就是招商银行网站而不是一个做得和招商银行一模一样的钓鱼网站呢?

这个其实和现实生活中如何鉴定一个长的像警察并且突然站到你面前要你交罚款的人是否是真正的人民警察是一个场景。

”警官证可以给我看看吗,谢谢!“

HTTPS 用的是同一种方法,它要求每一个使用这个协议的网站从专业的第三方机构申请一个数字证书,数字证书中包括网站的域名,所有者等等 (当然也包括公钥,这里不详细展开协议细节了)。

这个数字证书其实就相当于现实中的警官证。

在访问这个网站的时候浏览器会对证书做一次检查,而这个对话框,就是检查的结果。

我们来看看这个对话框内容是个什么鬼。

二、如何鉴别你是警察?因为警官证也有可能是假的。

第一个:

该网站的身份验证已经通过GeoTrust SSL CA–G2的验证,但没有公开审核记录。该网站的安全设置已过期,可能导致日后的Chrome 版本无法安全访问该网站。

刚才有提到证书是由专业机构颁发的,不过,

- 专业机构就没有坏人了嘛。

- 证书就不会被人偷吗。

- 专业机构被骗了怎么办。

事实上,荷兰专业机构(DigiNotar)甚至被入侵过一次, 丢了好几百个证书,你可以自行脑补一下有人潜入公安部自己办了几百个警官证是一个多么壮观的场景。


是,IETF在2013年启动了一个叫做certificate-transparency的开源项目,把所有已知的合法证书做了一个白名单,浏览器在验
证证书的时候同时也会去查看这个证书是不是在白名单里面。 如果不在的话,就会告知用户这个证书找不到记录,于是,有可能是假或者是被盗的证书。

但是,这里有一个致命的问题:

到目前为止,这个还只是一个试验性项目,而这个世界上那么多的网站, 你白名单得过来嘛。

10081946_alMV

(注意:已经没有警示标志)

比如上图所显示的,其实也没有审核纪录,不过警告的标示去掉了。说明谷歌其实自己也知道目前白名单的覆盖很差,一般找不到记录,并不会加上确切的警告标示。所以,目前你可以忽略它。

关键在第二个:

本网站采用较弱的安全配置(SHA-1签名),所以你的连接可能不是私人的。

这个就比较有意思了。

还是那个警官证的问题。 要搞一个警官证除了去偷/骗/潜入公安部自己做一个真的以外, 你还可以做个假的嘛。

对于数字证书来说,最重要的鉴别真假的部分是数字签名,而鉴于数字证书一般不小,不可能对每个字节都签一次名,一般来说是对数字证书的一个哈希值进行签名。

10081946_6Jdd

如果你不知道哈希值是什么,我给你打个比方。如果你是一个数字证书, 那你的照片就是你的哈希值。

它包含下面2个条件:

- 通过合适的手段,可以从你产生你的照片, 但是没法从照片产生你 。意思是,先有你,才能有照片。

- 只有你可以精确的产生你的照片,别人都不行。你就是唯一的,你的特征是别人没有的。

所以如果想检查一个人的警官证,只需要看看照片能不能对上人(哈希值符合),照片上面的骑缝章对不对(数字签名)。但是这个骑缝章只需要盖在照片上,而不需要盖在警官兄的脸上。当然我知道这个比喻有非常多学术上的不严谨性,不过这个是我目前能找到最容易理解的比喻之一了。

数字证书中, SHA-1就是一种常见的哈希算法。 可以像照相机一样,给你的数字证书生成一个唯一值(照片)。

只是这个算法有一个问题。 这个算法这个函数由于设计时间早,强度太差,导致有可能用两个不同的数字证书可能会生成同样一个值。

这个就像如果你有一个照身份照的照相机,不过这个神奇的照相机拍的太模糊,以致于通过特殊的设定,可以用另外一个人照出和真实警官一模一样的照片。恭喜你,如果你发现了这个设定,你就可以大规模的制作套牌警官证了。

这种现象在哈希函数中被称为是“碰撞”。

对于SHA-1 算法 如果要找到这个“特殊的设定”大概需要2的74次方个操作,(也有论文指出,只需要2的61次方个操作即可完成)  这个在SHA-1发明的时候是不可想象,不过其实在现在也是不可行的。只是按照现在计算机的发展速度 2018 年左右使用价格合适服务器集群理论上就可以破解(可以参考这里):

”A
collision attack is therefore well within the range of what an
organized crime syndicate can practically budget by 2018, and a
university research project by 2021。“

(”因此,在一个有组织犯罪集团的范围内,一次碰撞攻击的实际预算是2018,而一个大学的研究项目是2021“)

于是,Chrome 认为使用SHA-1的哈希函数都是潜在不安全的,于是会对所有使用SHA-1的网站证书提出警告,督促所有使用SHA-1的网站换为SHA-2。

不过注意,仅仅是潜在不安全, 目前还没有可行可靠的SHA-1碰撞算法出现。

所以,这些网站暂时是安全的,不过也希望站长们多多提高安全意识,因为SHA-1已经非常接近可以被“破解”边缘。很有可能会出现以上情况:被人找到碰撞算法或者说被破解,从而制作虚假警官证。

如果要详细的证书设置以去除这个警告的步骤,可以参考这里(点击进入链接)

因为工作原因——欧朋Opera是Chromium安全组成员,所以我对这个内情比较了解。有兴趣可以去看看讨论组里面的撕逼贴, 截个屏放在这里:

10081946_c1fF

from:   http://www.techug.com/google-browser

Install SSL Certificate on Tomcat

Apache服务器SSL配置

服务器证书安装配置指南(tomcat) – SSL证书配置指南http://blog.csdn.net/defonds/article/details/44410359

StartSSL 免费证书申请步骤以及Tomcat和Apache下的安装

http://www.chinaunix.net/old_jh/13/456376.html

Tomcat更换SSL证书方法-key和crt文件转换为jks

在Jboss中添加Godaddy的SSL域名证书的方法

数字证书的格式

How to add ssl certificate for a domain in Tomcat 8 server

服务器证书安装配置指南(tomcat) – SSL证书配置指南

数字证书及CA的扫盲介绍

电子证书 DER vs. CRT vs. CER vs. PEM

http://www.instantssl.cn/ssl-certificate-products/all-ssl-certificates.html

https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/968/108/intermediate-ca-2-comodo-rsa-organization-validation-secure-server-ca-sha-2

不同格式证书导入keystore方法

 

问题:相机上使用tomcat设置证书的方式,无法工作。

需要改为Apache上设置证书。

from:http://www.alphassl.com/support/install-ssl/tomcat.html