文章图片
我们再日常使用的系统中会用到很多签名的地方,
再win中 控制台输入certmgr.msc
文章图片
随机查看证书—
文章图片
文章图片
OpenSSL OpenSSL—安全套接字协议
在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。
几个关键词—
- CSR
- CRT
- key
以上知识一些基础的内容,我们再来说OpenSSL,首先他是一个协议—安全套接字协议,他的核心就是通过加密传输时的数据来保证信息不被非法窃取,保护用户隐私;
申请CA证书 openssl通过加密算法来实现.
openssl下载–linux版
openssl下载–win版
下载之后安装openssl,安装后的目录
文章图片
通过start.bat启动openssl
在D盘key文件夹下生成密钥文件
C:\Users\Gavin>openssl genrsa -des3 -out d:/key/server.key
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
私钥文件—
生成私钥,需要提供一个至少4位,最多1023位的密码由私钥创建待签名的证书----即公钥
文章图片
C:\Users\Gavin>openssl.exe req -new -key d:/key/server.key -out d:/key/pub.csr
依次输入国家,地区,城市,组织,组织单位,Common Name和Email,如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。
文章图片
最后 生成的文件
文章图片
查看证书内容—
C:\Users\Gavin>openssl.exe req -text -in d:/key/pub.csr -noout
【nginx|申请CA证书的步骤】
文章图片
以上申请证书的准备工作就做好了
自建CA 创建CA密钥
C:\Users\Gavin>openssl.exe genrsa -out D:/key/gavinca.key 2048
#默认长度也是2048
生成CA待签名证书
C:\Users\Gavin>openssl.exe req -new -keyd:/key/gavinca.key -out d:/key/gavinca.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:cn
State or Province Name (full name) [Some-State]:cn
Locality Name (eg, city) []:cn
Organization Name (eg, company) [Internet Widgits Pty Ltd]:cn
Organizational Unit Name (eg, section) []:cn
Common Name (e.g. server FQDN or YOUR name) []:cn
Email Address []:cnPlease enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:cn
An optional company name []:cn
生成CA根证书
C:\Users\Gavin>openssl.exe x509 -req -in d:/key/gavinca.csr -extensionsv3_ca -signkey d:/key/gavinca.key -out d:/key/gavinca.crt
Warning: ignoring -extensions option without -extfile
Certificate request self-signature ok
subject=CN = cn, ST = gavin, L = cn, O = future, OU = cn, CN = cn, emailAddress = cn
文章图片
文章图片
实际上我们的证书不需要存储到本地计算机,而是在浏览器中存储区会有相应的证书
以edge为例子---->>
设置---->>管理证书
文章图片
文章图片
所以https的加密传输需要网站支持----->>申请CA证书
小结—>> 申请CA证书的步骤;
- 1,生成自己的私钥
- 2,根据私钥生成公钥
生成该公钥需要携带一些信息— - 3,申请CA证书
- 准备好密钥及证书
准备一个私钥
C:\Users\Gavin>openssl genrsa -des3-out d:/key/server.key
Enter PEM pass phrase: #加密server.key
Verifying - Enter PEM pass phrase:
根据私钥生成一个公钥—即待签名的证书
C:\Users\Gavin>openssl req -new -key d:/key/server.key -out d:/key/pub.csr
Enter pass phrase for d:/key/server.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:SD
Locality Name (eg, city) []:YTL
Organization Name (eg, company) [Internet Widgits Pty Ltd]:YTL
Organizational Unit Name (eg, section) []:YTL
Common Name (e.g. server FQDN or YOUR name) []:TYL
Email Address []:12345678@YTL.COMPlease enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:1234
An optional company name []:YTL
生成CA证书–
C:\Users\Gavin>openssl.exe x509 -req -in d:/key/pub.csr -extensionsv3_ca -signkey d:/key/server.key -out d:/key/server.crt
Enter pass phrase for d:/key/server.key:
Warning: ignoring -extensions option without -extfile
Certificate request self-signature ok
subject=C = CN, ST = SD, L = YT, O = CodeM, OU = CODE, CN = Gavin, emailAddress = 12345678@hah.com
生成的证书还没有得到认证,因此无效的,没有 被信任.
文章图片
需要对证书进行签名后才能内使用,这里就不用大机构来认证了,自己整一个CA进行认证;
- CA认证跟证书申请
准备CA的密钥:
C:\Users\Gavin>openssl.exe genrsa -out d:/key/serverca.key 2048
生成待签名的证书----公钥:
C:\Users\Gavin>openssl.exe req -new -keyd:/key/serverca.key -out d:/key/serverca.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:USA
String too long, must be at most 2 bytes long
Country Name (2 letter code) [AU]:UK
State or Province Name (full name) [Some-State]:LD
Locality Name (eg, city) []:LD
Organization Name (eg, company) [Internet Widgits Pty Ltd]:LD
Organizational Unit Name (eg, section) []:LD
Common Name (e.g. server FQDN or YOUR name) []:KD
Email Address []:LDLDKD@haha.comPlease enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:1234
An optional company name []:LD
生成CA根证书
C:\Users\Gavin>openssl.exe x509 -req -in d:/key/serverca.csr -extensions v3_ca -signkey d:/key/serverca.key -out d:/key/serverca.crt
Warning: ignoring -extensions option without -extfile
Certificate request self-signature ok
subject=C = LD, ST = LD, L = LD, O = LD, OU = LD, CN = LD, emailAddress = 1234567@haha.com
对根证书进行签名
C:\Users\Gavin>openssl x509 -days 365 -req -in d:/key/pub.csr -extensions v3_req -CAkey d:/key/serverca.key -CA d:/key/serverca.crt -CAcreateserial -out d:/key/server.crt
Warning: ignoring -extensions option without -extfile
Certificate request self-signature ok
subject=C = CN, ST = SD, L = YTL, O = YTL, OU = YTL, CN = TYL, emailAddress = 12345678@YTL.COM
#x509 协议 ,days 有效期-req 请求---即由服务器的公钥要经过ca的私钥serverca.key ca公钥(证书) 认证(加密/解密)生成 经过认证的证书
再看CA颁发的证书—即服务器证书经过CA认证后的
文章图片
有了证书之后,还需要注册到系统中
安装证书即可;
文章图片
再次查看证书状态
文章图片
至此证书申请和认证完毕;
https 加密的使用
注意:Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致,否则依旧会引起浏览器警告。CA证书的应用---->> 如果网站要对外提供服务就需要对网站进行认证
文章图片
推荐阅读
- JAVA人生|外包干了五年,废了...
- Spring|Spring Boot开发简单网页(员工管理系统)(五)(登录功能实现)
- java|java spring上传图片_java基于spring boot本地上传图片示例解析
- 自动驾驶|自动驾驶 java_深入浅出自动驾驶(一)-图像识别
- 校招面试后端专题|校招面试 - 计算机网络 - HTTPS协议安全基础 - TLS 技术
- 百度|《2022版大数据必备Linux命令》,高清完整版下载!
- 医药箱APP静态小项目
- Java毕业设计项目实战篇|Java项目:大学生实习管理系统(java+SpringBoot+Thymeleaf+html+JQuery+bootstrap)
- java|15个Java线程并发面试题和答案(java高级)