生成密钥和 CA 证书步骤
- 生成 key 密钥
- 生成证书签名请求文件(csr 文件)
-
前期准备
确认安装了 openssl。
确认 openssl 在本地存在。
- 确认 nginx 编译了 openssl 模块。
[root@localhost ~]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
[root@localhost ~]# rpm -qa|grep open
openssl-1.0.2k-8.el7.x86_64
openssl-devel-1.0.2k-8.el7.x86_64
openldap-2.4.40-9.el7_2.x86_64
openssh-6.6.1p1-25.el7_2.x86_64
openssh-server-6.6.1p1-25.el7_2.x86_64
openssl-libs-1.0.2k-8.el7.x86_64
openssh-clients-6.6.1p1-25.el7_2.x86_64
生成key文件
idea: 一种非对称加密算法openssl genra -idea -out dengj.key 1024
out:输出
1024:加密精度,数字越大,加密性越好生成证书签名请求文件
openssl req -new -key dengj.key -out dengj.csr
生成证书签名文件
openssl x509 -req -days 3650 -in dengj.csr -signkey dengj.key -out dengj.crt
生成的3个文件
HTTPS 语法
Syntax: ssl on|off;
Default: ssl off;
Context: http, server
Syntax: ssl_certificate file;
Default: —
Context: http, server
Syntax: ssl_certificate_key file;
Default: —
Context: http, server
示例
访问 https://dengj.ojandapple.site/1.html 出现下面的页面:server
{
listen 443;
server_name dengj.ojandapple.site;
ssl on;
ssl_certificate /etc/nginx/ssl_key/dengj.crt;
ssl_certificate_key /etc/nginx/ssl_key/dengj.key;
#ssl_certificate_key /etc/nginx/ssl_key/jesonc_nopass.key;
index index.html index.htm;
location / {
root /opt/app/code;
}
}
因为证书是自己生成的,浏览器无法校验真实性。正规流程是拿着 key 文件和 csr 文件去权威网站申请 CA 证书。有正规的 CA 证书,就不会出现上面的提示了。