openssl制作证书实现单向认证

一、CA证书

CA是证书的签发机构,它是公钥基础设施(Public Key Infrastructure,PKI)的核心。CA是负责签发证书、认证证书、管理已颁发证书的机关。

CA 拥有一个证书(内含公钥和私钥)。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。

如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。

如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。证书实际是由证书签证机关(CA)签发的对用户的公钥的认证。

证书的内容包括:电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等等。证书的格式和验证方法普遍遵循X.509国际标准。

 

二、准备工作

1.之前按照教程对gmssl进行编译和安装时,遇到了很大问题,直接搞崩了虚拟机……通过分析和查找,我们小组发现了问题所在:gmssl以动态库的形式进行编译时,同时会生成openssl.so的动态库文件;该生成的openssl.so会与系统自己的openssl.so动态库产生冲突。openssl.so是操作系统所依赖的重要库文件,包括联网等活动都会受其影响,这次安装约等于将整个系统整崩溃……

2.后来选择在windows环境下直接用openssl工具进行编译,实现了证书的创建。

3.附openssl(64位安装包)下载地址:https://slproweb.com/products/Win32OpenSSL.html

4.下载到本地后在bin目录下建立3个文件夹,分别是ca、client、server。

5.http和https的区别:

http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解决HTTP协议的这一缺陷,需要使用另一种协议:HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

 

三、证书制作

(1)生成CA证书

1.创建私钥

-out ca/ca.key:生成的密钥长度是1024位,存放在ca文件夹下。

openssl genrsa -out ca/ca.key 1024

2.创建证书请求

req为生成证书请求文件,即ca-req.csr。

openssl req -new -out ca/ca-req.csr -key ca/ca.key

 

3.自签署证书

申请一个x509证书。-out ca/ca-cert.crt是将生成的证书放在ca目录下,证书名字是ca-cert.crt。-days 3650指定证书的有效期是3650天。

openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.crt -signkey ca/ca.key -days 3650

 

 (2)生成server证书

1.创建私钥

genrsa -out server/server.key 1024

2.创建证书请求 

req -new -out server/server-req.csr -key server/server.key

3.自签署证书

x509 -req -in server/server-req.csr -out server/server-cert.crt -signkey server/server.key -CA ca/ca-cert.crt -CAkey ca/ca.key -CAcreateserial -days 3650

4.转换证书格式

pkcs12 -export -clcerts -in server/server-cert.crt -inkey server/server.key -out server/server.p12

 

四、Apache Tomcat验证

修改tomcat的配置文件(conf/server.xml)添加一个新的connector,内容如下

 

 

 五、在Firefox浏览器中导入证书

 

 

 

 六、验证

浏览器中输入:https://localhost:8443/ks/WebContent/html/index.html,结果如下:可以看到我们的网站已经有小锁了!/

 

posted @ 2020-10-31 23:50  shihaolin  阅读(959)  评论(0编辑  收藏  举报