nginx本地ssl证书制作

1.nginx本地ssl证书制作

制作ca证书

1.生成 ca.key CA 私钥

1
openssl genrsa -out ca.key 2048

2.生成证书请求文件 生成签名请求: 生成签署申请(注意除Common Name以外可以为空,Common Name必须为服务器的ip或域名)如www.yichen1.com即可生成该站点的证书,同时也可以使用泛域名如 *.yichen1.com 来生成所有二级域名可用的网站证书。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
openssl req -new -key ca.key -out ca.csr

需要依次输入
Country Name(国家名) CN
State or Province Name(州名或省名) sichuan
Locality Name(地区或城市名称) dazhou
Organization Name(机构名称) yichen.Ltd
Organizational Unit Name(组织单位名称) yichen.Ltd
Common Name(域名或IP) yichen1.com
Email Address(邮箱地址) yichen1@163.com

Please enter the following 'extra' attributes
to be sent with your certificate request
(请输入以下“额外”属性
与您的证书请求一起发送)
A challenge password(访问密码,必须4位以上。) 1234
An optional company name(公司名称): baidu

这时候就会生成yichen1.csr这个文件。

这时候本地有两个文件 ca.csr ca.key

常用参数

    -key    私钥文件(指明从哪个私钥文件中提取公钥创建证书签署请求)

    -out    指定证书文件存放在位置

    -new    生成新的证书签署请求;

    -days n   证书有效时长,单位为“天”;

    -x509    生成自签证书

3.用自己的私钥给自己签发根证书

1
2
3
4
5
6

openssl x509 -req -days 7304 -in ca.csr -signkey ca.key -out ca.crt


这时候会生成ca.crt 文件现在有san个文件了。
3. ca.crt 2. ca.csr 1. ca.key

4.创建 /etc/pki/CA/index.txt文件

用来跟踪已经颁发的证书。

1
touch /etc/pki/CA/index.txt

用CA 进行签名:

1
openssl ca -policy policy_anything -days 3652 -cert ca.crt -keyfile ca.key -in ca.csr -out yichen1.crt

如果报错

用来跟踪最后一次颁发的证书的序列号。

1
echo "01" > /etc/pki/CA/serial

解决方案: 修改 /etc/pki/tls/openssl.cnf 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# A few difference way of specifying how similar the request should look
# For type CA, the listed attributes must be the same, and the optional
# and supplied fields are just that :-)
policy = policy_match

# For the CA policy
[ policy_match ]
countryName = match
#stateOrProvinceName = match (将 match 改为 optional )
#organizationName = match (将 match 改为 optional )
stateOrProvinceName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional

再次执行:

1
2
3
4
5
6
7
openssl ca -policy policy_anything -days 3652 -cert ca.crt -keyfile ca.key -in yichen1.csr -out yichen1.crt

生成新的文件yichen1.crt

有4个文件了。为了方便。把ca.key重命名下
ca.crt ca.csr ca.key yichen2.crt
mv ca.key yichen1.key

Nginx 配置

以下是 Nginx 启用的部分配置,需要设置 ssl_certificate ssl_certificate_key 指定证书和公钥,并且 listen 443,然后重新启动 Nginx,浏览器就可以用的 https://yourhost 的方式网页了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  server {

listen 80 ;
listen 443 ssl;
server_name yichen2.com;
root /usr/share/nginx/html;
index test.html ;
ssl_certificate /root/ssl/yichen1.crt;
ssl_certificate_key /root/ssl/yichen1.key;

return 301 https://$host$request_uri ;
}

重启nginx 可以测试下
curl -k -I https://yichen2.com

评论


:D 一言句子获取中...

加载中,最新评论有1分钟缓存...