OpenSSL生成SSL证书

前言:

  最近遇到一个问题,两个平台之间互相关联,但又不想输入端口那么麻烦,那么最好的方法就是一个使用80端口,一个使用443端口。于是才有了这篇文章。

1. 检查openssl是否已经安装

[root@loaclhost ~]# which openssl
/usr/bin/openssl

2. 接下来就开始生成证书

  1) 生成私钥

# genra	生成RSA私钥
# -des3	des3算法
# 2048 私钥长度
[root@loaclhost ~]# openssl genrsa -des3 -out server.pwd.key 2048
Generating RSA private key, 2048 bit long modulus
.................................+++
........................................................................+++
e is 65537 (0x10001)
Enter pass phrase for server.pwd.key:
Verifying - Enter pass phrase for server.pwd.key:

  需要两次输入四位密码,生成一个有密码的私钥server.pwd.key

  2) 去除私钥中的密码

[root@loaclhost ~]# openssl rsa -in server.pass.key -out server.key
Enter pass phrase for server.pass.key:
writing RSA key

  生成一个没有密码的私钥server.key

  3) 生成CSR(证书签名请求)

# req 生成证书签名请求
# -new 新生成
# -key 私钥文件
# -out 生成的CSR文件
# -subj 生成CSR证书的参数
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=BeiJing/L=BeiJing/O=dev/OU=dev/CN=xxx.com"

  subj参数说明:

    1. /C :国家

    2. /ST :省

    3. /L : 城市

    4. /O : 企业

    5. /OU : 部门

    6. /CN : 域名ip

  4) 生成SSL证书

[root@loaclhost ~]# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=CN/ST=BeiJing/L=BeiJing/O=dev/OU=dev/CN=xxx.com
Getting Private key

  最终只需要三个文件:server.crt, server.csr, server.key

3. nginx运用

server {
    listen          443 ssl;
    server_name     _; #本机ip
    client_max_body_size              200m;

    ssl_certificate        cert/server.crt;
    ssl_certificate_key    cert/server.key;

    ssl_ciphers      ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_protocols    TLSv1 TLSv1.1 TLSv1.2;
    ssl_session_timeout                 5m;
    ssl_prefer_server_ciphers           on;
}
最终输入https://{ip}进行访问

 

 毕竟是不安全的证书,忽略即可,当然,为了安全起见,还是申请正版证书较好。

 

 

posted @ 2020-10-10 18:14  darkly  阅读(1224)  评论(0编辑  收藏  举报