最近在测试一个 web 项目,用到了 https 协议。由于是在本地局域网内测试,使用 OpenSSL 生成的自签名证书。每次访问的时候,浏览器都会提示安全证书存在问题。
要让红色的不安全变成绿色的安全,就需要创建 CA,自行签发证书。
OpenSSL 虽然在 linux 系统上比较常见,但也存在 windows 版本。我下载的是 openssl-0.9.8h-1-bin.zip,解压后里面有一个 share 文件夹:
其中,certs 和 private 这两个文件夹是空的。而 openssl.cnf 是自带的一个配置文件,不过,里面的内容被我修改了,内容如下:
openssl.cnf 用来生成 CA 证书用的,而 myssl.cnf 是根据 openssl.cnf 文件修改的,用来生成用户证书用的,内容如下:
首先,在 share 文件夹中创建两个必须的文件:
其中,index.txt 是证书的数据库文件,是一个空文件。serial 是序列文件,内容是 00。
准备工作完成后,开始生成 CA 证书的 RSA 密钥对:
此时,在 share/private 文件夹中生成了一个 root.key 密钥文件。接着,开始生成 CA 证书,并对 CA 证书签名:
此时,在 share/certs 文件夹中生成了一个 root.crt 证书文件。
接下来要生成用户密钥对:
此时,在 share/private 文件夹中生成了一个 www.ricen.net.key 密钥文件。接着,要生成用户证书请求文件:
此时,在 share 文件夹中多了一个 www.ricen.net.csr 请求文件。
最后一步,就是拿之前生成的 CA 密钥、CA 证书,以及这个用户证书请求文件,来对用户证书签名:
此时,在 share/certs 文件夹中生成了一个 www.ricen.net.crt 证书文件。
把 www.ricen.net.key 密钥文件和 www.ricen.net.crt 证书文件扔到 web 服务器上去,给网站配置 https 证书。
root.crt 和 www.ricen.net.crt 这两个证书文件要发给用户浏览器安装。
双击 root.crt 证书文件,可以看到提示 CA 根证书不受信任:
而双击 www.ricen.net.crt 证书文件,可以看到提示没有足够的信息验证:
没关系,首先,安装 root.crt 证书。可以双击 root.crt 证书文件,然后点击“安装证书”。
这时候,再双击 root.crt 证书,发现已经不再提示 CA 根证书不受信任了。
而双击 www.ricen.net.crt 证书,也不会提示没有足够信息。
当然, 这只是说明证书没有问题,www.ricen.net.crt 证书也还是要安装一下。
安装完证书之后的效果:
Copyright © 2005-2023 by www.ricensoftwares.com.cn All Rights Reserved.