本地HTTPS测试中生成可信泛域名证书的方法

有时,在做网站时,需要在本地测试,但本地测试时证书一般是不可信的。本文介绍如何添加可信证书。

本方法在Chrome和IE以及Edge中可用,Firefox不可用。因为Chrome和IE以及Edge这三者使用的是本地的证书库,Firefox使用的是自身的证书库。

比如我们要添加一个*.lvh.yt的泛域名,方法如下。

1. 新建一个证书文件夹

新建一个用于生成域名证书的文件夹。比如:C:\test\crt

2. 下载OpenSSL

下载地址如下:

https://indy.fulgan.com/SSL/

下载好之后,把下载好的文件解压到第一步的证书文件夹下。比如:C:\test\crt\openssl

3. 添加OpenSSL配置文件

在证书文件夹下添加一个openssl.cnf文件,内容如下:

Ini
[ req ]
distinguished_name	= req_distinguished_name
attributes		= req_attributes
x509_extensions	= v3_ca	

[ req_distinguished_name ]

[ req_attributes ]

[ v3_ca ]
subjectAltName = @alt_names
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
basicConstraints = CA:true

[ alt_names ]

DNS.1 = localhost
DNS.2 = lvh.yt
DNS.3 = *.lvh.yt

其中,alt_names部分请修改为自己的域名。

4. 添加可执行BAT文件

在证书文件夹下添加一个makekey.bat文件,内容如下:

DOS
set PATH=C:\test\crt\openssl
set OPENSSL_CONF=C:\test\crt\openssl.cnf

openssl genrsa -out lvhyt.key 4096
openssl req -new -x509 -key lvhyt.key -sha256 -out lvhyt.crt -days 7304 -subj "/C=CN/ST=Hunan/L=Wugang/O=Yutuo/OU=Yutuo/CN=*.lvh.yt"

其中的目录和subj请修改为自己的信息。

5.生成证书并导入

执行makekey.bat文件,即可生成证书。

成功后,会生成两个文件:lvhyt.keylvhyt.crt

双击文件lvhyt.crt,会显示【证书】窗口。
在【证书】窗口点击【安装证书】,会显示【证书导入向导】窗口,在该窗口点击【下一步】。会出现下图的窗口,请按下图设置。

※如果导入错了,需要删除证书,请执行certmgr.msc命令,进入证书管理画面删除证书。

6.把证书设置到网站

这个网上的介绍也有很多,而且Apache、Nginx的设置方法都,我就不具体介绍了。

我用的是Apache,方法如下。

在Apache的Conf目录下,新建一个ssl文件夹,把lvhyt.keylvhyt.crt复制到该文件夹下。然后新建一个ssl.conf文件,内容如下:

Apache
SSLEngine on
SSLCertificateFile conf/ssl/lvhyt.crt
SSLCertificateKeyFile conf/ssl/lvhyt.key

然后在每一个vhost设置里,include这个文件就行。如:

Apache
<VirtualHost *:80>
    DocumentRoot "C:/Web/Test"
    ServerName test.lvh.yt
</VirtualHost>

<VirtualHost *:443>
    DocumentRoot "C:/Web/Test"
    ServerName test.lvh.yt
    Include conf/ssl/ssl.conf
</VirtualHost>

转载请注明:宇托的狗窝 » 本地HTTPS测试中生成可信泛域名证书的方法

发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址