IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> https-OPenSSL证书生成及自签名证书 -> 正文阅读

[网络协议]https-OPenSSL证书生成及自签名证书

目录

SSL/TLS

1、搭建OPenssl服务器

1.1、下载

?1.2、安装下载好的exe程序

2、服务器端证书-生成key、CSR、CRT

2.1、进入如下目录,执行cmd

?2.2、生成一个私钥key

?2.3、由生成的私钥key生成一个待签名的CSR证书文件(公钥)

?2.4、查看证书内容

3、自建CA证书

3.1、创建CA私钥

3.2、生成CA证书

3.3、生成CA根证书

3.4、对服务器证书签名

4、nginx配置ssl,支持https


注意:以下内容有参考其它资料。

SSL/TLS


TLS(Transport Layer Security) 是SSL(Secure Socket Layer) 的后续版本

证书生成以及自签名证书
查看系统已存证书:certmgr.msc,运行中输入可以查看证书管理器win+r。
CSR:证书签名请求文件,一个文件的后缀。
CRT:证书
key: 私钥,由key生成CSR,等待被签名。
?

1、搭建OPenssl服务器

1.1、下载

OPenSSL自签名下载:http://slproweb.com/products/Win32OpenSSL.html

?1.2、安装下载好的exe程序

2、服务器端证书-生成key、CSR、CRT

2.1、进入如下目录,执行cmd

?2.2、生成一个私钥key

使用openssl工具生成一个私钥key:

openssl.exe genrsa -des3 -out d:/a/server.key?

生成了一个key文件:

?2.3、由生成的私钥key生成一个待签名的CSR证书文件(公钥)

openssl.exe req -new -key d:/a/server.key -out d:/a/server.csr

-key:生成的私钥文件

-new:新创建一个文件

这个证书不能直接使用,需要签名生成一个CRT证书才能使用。

证书中信息:

·Country Name ( 2 letter code) [XX] :CN #请求签署人的信息

·State or Province Name(fullname) []:#请求签署人的省份名字

·Locality Name(eg, city) [Default City] :#请求签署人的城市名字

·Organization Name(eg, company) [Default Company Ltd] :#请求签署人的公司

·OrganizationalUnit Name(eg, section) []:#请求签署人的部门名字

·CommonName(eg, your name or your servers hostname) []:#这里一般填写服务器域名

?

?2.4、查看证书内容

openssl.exe req -text -in d:/a/server.csr

3、自建CA证书

自建CA
我们用的操作系统(windows, linux, unix, android, ios等) 都预置了很多信任的根证书, 比如我的windows中就包含VeriSign的根证书, 那么浏览器访问服务器比如支付宝www.alipay.com时, SSL协议握手时服务器就会把它的服务器证书发给用户浏览器, 而这本服务器证书又比如是VeriSign颁发的,自然就验证通过了。


3.1、创建CA私钥

openssl.exe genrsa -out d:/a/myca.key 2048

3.2、生成CA证书

openssl.exe req -new -key d:/a/myca.key -out d:/a/myca.csr

3.3、生成CA根证书

openssl.exe x509 -req -in d:/a/myca.csr -extensions v3_ca -signkey d:/a/myca.key -out d:/a/myca.crt

3.4、对服务器证书签名

openssl x509 -days 365 -req -in d:/a/server.csr -extensions v3_req -CAkey d:/a/myca.key -CA d:/a/myca.crt -CAcreateserial -out d:/a/server.crt

用CA的key对服务器端的公钥做签名。

4、nginx配置ssl,支持https

需要服务端的证书CRT和私钥key,所以需要把上面生成的服务端证书server.key和server.crt传输到nginx所在的服务器。

需要在nginx.conf文件中添加:

server {
        listen 443 ssl;
        server_name localhost;
        ssl_certificate /opt/cer/server.crt;
        ssl_certificate_key /opt/cer/server.key;
        location /ftp {
            root   /home/ftpadmin;
            index  index.html index.htm;
        }

    }

server {
        listen       8080;
        server_name  localhost;
        
        rewrite ^/(.*)$ https://localhost:443/$1 permanent;

    }

配置后重新启动需要输入密码,这里自己定义的server.key的密码是:123456

配置完,重启nginx服务,访问如下:

?如果想让https访问时不再提示不安全,需要把ca的crt证书安装到浏览器所在服务器的证书管理器中,因为这个证书时自己给自己签名的,是不受信任的,要想被信任,需要双击安装到受信任的根证书颁发机构存储区。从下图可以看出自己给自己颁发的。

5、一个免费的ssl证书网站

FreeSSL首页 - FreeSSL.cn一个提供免费HTTPS证书申请的网站

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:42:15  更:2022-12-25 11:42:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 21:06:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码