在开发环境及私有环境下需要使用SSL,于是使用openssl创建自签发证书,支持多域名、泛域名、直接IP访问。
一、使用openssl生成证书自签名
openssl在centos中是标配,所以直接在centos中操作,因为要多个域名和IP,故而需要编辑一个配置文件,如下:
1 | $ vim req.cnf |
1 | # 定义输入用户信息选项的"特征名称"字段名,该扩展字段定义了多项用户信息。 |
其中IP配置项,可有可无。
1 | $ mkdir -p ssl/ |
至此证书生成完成
可以下载ssl目录下的private.key和ssl.crt文件
openssl 命令参数说明:
req 大致有3个功能:生成证书请求文件、验证证书请求文件和创建根CA。
-x509 说明生成自签名证书。
-nodes openssl req在自动创建私钥时,将总是加密该私钥文件,并提示输入加密的密码。可以使用”-nodes”选项禁止加密私钥文件。
-days 指定所颁发的证书有效期。
-key 指定输入的密钥,如果不指定此选项会根据 -newkey
选项的参数生成密钥对。
-newkey 指定生成一个新的密钥对,只有在没有 -key
选项的时候才生效,参数形式为rsa:numbits
或者dsa:file
,例如:rsa:2048
rsa表示创建rsa私钥,2048表示私钥的长度。
-keyout 指定私钥保存位置。
-out 新的证书请求文件位置。
-config 指定req的配置文件,指定后将忽略所有的其他配置文件。如果不指定则默认使用/etc/pki/tls/openssl.cnf中req段落的值。
二、证书如何使用
此时访问会出现如下问题
你还得在系统上安装一下证书,安装步骤如下
1、在Windows中导入证书
- 第一步:双击ssl.crt文件打开证书文件,出现如下界面
- 第二步:
- 第三步:
- 第四步:
- 第五步:
证书安装,完成
重启浏览器,才能生效
2、测试效果
3、火狐浏览器处理
Firefox默认情况不,还是不信任自签名证书
打开火狐浏览器输入about:config
进行设置界面
- 第一步:
- 第二步:
输入security.enterprise_roots.enabled
修改为true
- 第三步:
设置完成
重启浏览器,才能生效