1.nginx本地ssl证书制作

制作ca证书

1.生成 ca.key CA 私钥

openssl genrsa -out ca.key 2048

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

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(邮箱地址)  [email protected]

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.用自己的私钥给自己签发根证书

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文件

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

touch /etc/pki/CA/index.txt

用CA 进行签名:

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

如果报错

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

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

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

# 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

再次执行:

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 的方式网页了。

  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
Last modification:July 1st, 2020 at 05:05 am
如果觉得我的文章对你有用,请随意赞赏