证书生成器的制作方法(证书生成器在线制作工具)
openssl 生成nginx永久ssl证书
1、SSL证书制作依靠openssl,首先检查OpenSSL:一般centos7上默认装好了
[root@zq testzq]# openssl version
OpenSSL 1.0.2k-fips? 26 Jan 2017
2、生成私钥和自签名的SSL证书:
2.1、生成私钥 ,参数genrsa:生成RSA私钥;-des3:des3算法;-out server.pass.key:生成的私钥文件名;2048:私钥长度
[root@zq testzq]# openssl genrsa -des3 -out server.pass.key 2048
Generating RSA private key, 2048 bit long modulus
.............................................................+++
.......................+++
e is 65537 (0x10001)
Enter pass phrase for server.pass.key:
Verifying - Enter pass phrase for server.pass.key:? ? ? ? ? ? ? ? #输入一个4位以上的密码
[root@zqtestzq]# ll
-rw-r--r-- 1 root root 1751 1月? 20 11:01 server.pass.key? #有密码的私钥文件
2.2、去除私钥中的密码
[root@zq testzq]# openssl rsa -in server.pass.key -out server.key
Enter pass phrase for server.pass.key:
writing RSA key
[root@zq testzq]# ll
-rw-r--r-- 1 root root 1679 1月? 20 11:01 server.key? ? ? ? ? ? #无密码的私钥文件
-rw-r--r-- 1 root root 1751 1月? 20 11:01 server.pass.key? ? #有密码的私钥文件
[root@zq testzq]# openssl genrsa -des3 -out server.pass.key 2048
Generating RSA private key, 2048 bit long modulus
.............................................................+++
.......................+++
e is 65537 (0x10001)
Enter pass phrase for server.pass.key:
Verifying - Enter pass phrase for server.pass.key:? ? ? ? ? ? ? ? #输入一个4位以上的密码
[root@zqtestzq]# ll
-rw-r--r-- 1 root root 1751 1月? 20 11:01 server.pass.key? #有密码的私钥文件
2.2、去除私钥中的密码
[root@zq testzq]# openssl rsa -in server.pass.key -out server.key
Enter pass phrase for server.pass.key:
writing RSA key
[root@zq testzq]# ll
-rw-r--r-- 1 root root 1679 1月? 20 11:01 server.key? ? ? ? ? ? #无密码的私钥文件
-rw-r--r-- 1 root root 1751 1月? 20 11:01 server.pass.key? ? #有密码的私钥文件
2.3、生成CSR(证书签名请求文件)
[root@zq testzq]# openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Guangdong/L=Guangzhou/O=xdevops/OU=xdevops/CN=gitlab.xdevops.cn"
参数说明:# req 生成证书签名请求? ?
? ? ? ? ? ? ? ? ? # -new 新生成? ? ? ? ? ?
? ? ? ? ? ? ? ? ? # -key 私钥文件? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? # -out 生成的CSR文件? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? # -subj 生成CSR证书的参数
2.4、生成自签名的SSL证书
[root@zq testzq]# openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt? #-days:证书有限期(天)
Signature ok
subject=/C=CN/ST=Guangdong/L=Guangzhou/O=xdevops/OU=xdevops/CN=gitlab.xdevops.cn
Getting Private key
[root@zq testzq]# ll
-rw-r--r-- 1 root root 1241 1月? 20 11:00 server.crt? ? ? ? ? ? #自签名的SSL证书
-rw-r--r-- 1 root root 1021 1月? 20 11:00 server.csr? ? ? ? ? ? #签名文件
-rw-r--r-- 1 root root 1679 1月? 20 11:01 server.key? ? ? ? ? ? #无密码的私钥文件
-rw-r--r-- 1 root root 1751 1月? 20 11:01 server.pass.key? #有密码的私钥文件nginx
server {
? ? listen? ? ? 8443;
? ? ssl? ? ? ? ? on;
? ? ssl_certificate /home/testzq/server.crt;? ? ? #配置已签名的SSL证书.crt
? ? ssl_certificate_key /home/testzq/server.key;? #配置已签名的证书私钥.key
? ? .............................................
server {
? ? listen? ? ? 443;
? ? ssl? ? ? ? ? on;
? ? ssl_certificate /home/testzq/server.crt;
? ? ssl_certificate_key /home/testzq/server.key;
ssl证书如何生成csr?
生成CSR文件的方法:主要有两种方法
方法一、通过web服务器上进行生成CSR
这种方式需要一定的服务器操作经验,但是也可以通过网上教程按图索骥。
这种方式的好处是生成好的CSR在web服务器上安装时不会出现不匹配的情况。
方法二、可以通过在线生成的方式生成CSR(CSR在线生成工具)
这种方式好处是相对较为简单,便捷,但是缺点是有可能会出现安装证书时和web服务器不匹配,需要重新进行证书申请。
电子证书怎么生成
电子证书可以通过利用数字签名和加密技术以及证书颁发机构的认证,来生成一个安全的电子文件。
拓展:电子证书能够让用户更有效地进行身份认证,保护自己的个人信息安全不受网络环境的威胁。
用openssl 和 keytool 生成 SSL证书
SSL(Secure Sockets Layer (SSL) and Transport Layer Security (TLS))被设计为加强Web安全传输(HTTP/HTTPS/)的协议(事实上还有SMTP/NNTP等) ,默认使用443端口
openssl 适用范围广。
keytool 单独针对 java application
数字证书是现代互联网中个体间相互信任的基石。
如果没有了数字证书,那么也就没有了各式各样的电商平台以及方便的电子支付服务。目前我们所提到的数字证书都是基于 ITU 制定的 X.509 标准。
简单来说,数字证书就是一张附带了数字签名的信息表。
x509证书一般会用到三类文件,key,csr,crt。
Key是私用密钥,openssl格式,通常是rsa算法。
csr是证书请求文件(certificate signing request),用于申请证书。在制作csr文件的时候,必须使用自己的私钥来签署申请,还可以设定一个密钥。
crt是CA认证后的证书文件(certificate),签署人用自己的key给你签署的凭证。
CA根证书的生成步骤
生成CA私钥(.key)--生成CA证书请求(.csr)--自签名得到根证书(.crt)(CA给自已颁发的证书)。
本质上就是用私钥去获取证书,然后把这两个文件一起放到server,以此来证明 我就是我 。
上面是交互式输入,非交互的方式如下
自签名是免费/测试的证书,浏览器默认不认可。
通常的方法是:提交CSR到证书公司(比如VeriSign,Inc),等对方发来证书。(当然这是要花钱的)
比如Nginx服务器,把 ca.key 和 ca.crt 放到 /etc/nginx/certs 目录。修改/etc/nginx/nginx.conf
重启服务生效
引入一个概念:SAN
SAN stands for “ Subject Alternative Names ” and this helps you to have a single certificate for multiple CN (Common Name).
简而言之,用SAN是为了省钱,一个证书给多个网址使用。如果用之前的交互方式来申请证书,根本没有地方来输入SAN,要解决这问题,需用到配置文件。
The entries in SAN certificate:
Create new Private Key and Certificate Signing Request
生成 private key 和 生成 CSR 合并成一步
例子
于是 ca.csr ca.key 都生成了,csr 用于申请证书。
Keytool 是一个Java数据证书的管理工具 , Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中。
这是java专用方式,过程跟openssl 类似。
服务器配置可以使用私钥+证书合并在一起的文件,如jks或者pkcs12文件,这类文件一般叫key.keystore。(openssl使用两个文件)
(openssl 自签名参考上面)
测试阶段,也可以用keytool 来实现自签名(根据证书请求生成证书)。
用 jenkins 来举例
查看单个证书
列出keystore存在的所有证书
使用别名查看keystore特定条目
删除keystore里面指定证书
更改keysore密码
导出keystore里面的指定证书
cer数字证书如何生成?
internat选项内容证书导出下一步不需要导出私钥,下一步第1个,下一步输入文件名,下一步完成
OK