使用openssl创建ssl证书,用于测试https服务_ssl证书

一个web站点要对外提供https服务就需要ssl证书,ssl证书可以从云服务厂商那里购买,通常也能申请到免费的,但是如果只是为了测试,则可以使用openssl来创建ssl证书。下面是完整的生成过程:

第一步:创建私钥

openssl genrsa  -out server.key 2048

第二步:创建签名请求文件

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

这一步需要填入一些信息,注意,在要求输入域名(Common Name (e.g. server FQDN or YOUR name))时要输入你https服务的域名。

Country Name (2 letter code) [AU]:cn
State or Province Name (full name) [Some-State]:gd
Locality Name (eg, city) []:sz
Organization Name (eg, company) [Internet Widgits Pty Ltd]:company
Organizational Unit Name (eg, section) []:section
Common Name (e.g. server FQDN or YOUR name) []:host.com
Email Address []:xiachu@qq.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:host

第三部:自签名,生成公钥

注意,--days参数输入有效时长天数:

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

执行该命令会打印以下信息:

Signature ok
subject=/C=cn/ST=gd/L=sz/O=company/OU=section/CN=host.com/emailAddress=111111@qq.com
Getting Private key

第四步:合并公钥私钥

cat server.crt server.key > ./server.pem

第五步:部署使用

在上面几步,我们生成crt,pem等文件,参考你的web服务器说明,放到配置文件的合适位置即可。

由于是自己生成的证书,没有第三方信用机构担保,所以这个证书使用时浏览器会有安全提示,因为是用于测试,允许继续访问即可。

其他:合并公私钥

有些web服务器部署证书需要pem文件,这个文件起始就是合并的公私钥文件。

例如,有些云厂商会提供apache的私钥和公钥文件,下载的证书包括server.key和server.public.crt文件,可以合并公私钥生成pem文件:

cat server.public.crt server.key > ./server.pem