自建CA并签名server证书实现https
因为目前环境在本地进行测试,所以我们采用自建CA并签名server证书的方式实现https。(如果使用AWS服务则是AWS作为CA,并根据我们提供的资料生成server证书)
数字签名相关知识课参阅:https://blog.csdn.net/m0_37263637/article/details/80285143
server环境:nginx(ubuntu)
工具:openssl
名词说明:CA 证书授权中心(Certificate Authority )
参考链接:http://www.cnblogs.com/kyrios/p/tls-and-certificates.html
1 自建CA
1.1 生成CA私匙
openssl genrsa -out icatchtek.key 2048
1.2 生成CA证书请求
openssl req -new -key icatchtek.key -out icatchtek.csr
过程中需要你输入该根证书相关信息
PS:证书请求是对签名的请求,需要使用私钥进行签名
1.3 生成CA根证书
openssl x509 -req -in icatchtek.csr -extensions v3_ca -signkey icatchtek.key -out icatchtek.crt
这里就得到的CA的根证书
PS:证书是自签名或CA签名过的凭据,用来进行身份认证
2 自建server端证书
2.1 生成server私匙
openssl genrsa -out smarthome_server.key 2048
2.2 生成server证书请求
openssl req -new -key smarthome_server.key -out smarthome_server.csr
2.3 生成server证书
生成server证书,需要一份配置文件,可参阅:vi openssl.cnf
[req] distinguished_name = req_distinguished_name req_extensions = v3_req [req_distinguished_name] countryName = Country Name (2 letter code) countryName_default = CN stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = SiChuan localityName = ChengDu (eg, city) localityName_default = xx.xxorganizationalUnitName = xxxxxxorganizationalUnitName_default = Domain Control Validated commonName = Internet Widgits Ltd commonName_max = 64 [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [alt_names] #注意这个IP.1的设置,IP地址需要和你的服务器的监听地址一样 DNS为server网址IP.1 = 172.28.28.4DNS.1 = www.helloworld.com
需要将server监听的地址写入证书中,如果方式时地址与证书中地址不一致将不能通过证书认证。
执行命令生成server证书
openssl x509 -days 365 -req -in smarthome_server.csr -extensions v3_req -CAkey icatchtek.key -CA icatchtek.crt -CAcreateserial -out smarthome_server.crt -extfile openssl.cnf
-days 为证书有效期
3 在server部署server证书
Nginx 部署可参考:https://blog.csdn.net/m0_37263637/article/details/80077925
在2中我们得到了经过CA认证后的并生成的server证书,现在我们将证书部署到nginx目录下进行测试.
在nginx.conf中 server 块内 listen 端口后添加下面的语句
ssl on;ssl_certificate /home/ubuntu/webvideo/nginx/conf/smarthome_server.crt;ssl_certificate_key /home/ubuntu/webvideo/nginx/conf/smarthome_server.key;
我们直接访问nginx 开放的端口,会得到浏览器的警告:
PS:2中openssl.cnf中的地址一定要与nginx架设地址一致。
4 将自建CA根证书加入到浏览器
因为我们不是官方的CA机构并没有内置在浏览器或系统中,所以浏览器会认为该CA非法,此时我们需要将我们自建CA的根证书加入到浏览器中。(1操作流程中得到的证书)
- Chrome :设置-设置-设置-高级-隐私设置和安全性-管理证书-导入
- 火狐:设置-选项-高级-证书-查看证书-证书机构-导入
以上设置均可百度相关浏览器导入证书。
IE 和 safari 使用的windows 默认证书导入方式但不能被识别
现在访问就没有这个警告了。
自建CA并签名server证书实现https相关推荐
- openssl 自建ca,颁发客户端证书
openssl 自建ca,颁发客户端证书 概念理解 数字证书: 数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而 ...
- 针对由 CA 进行签名的证书生成新的专用密钥和 CSR
针对由 CA 进行签名的证书生成新的专用密钥和 CSR 对于由认证中心 (CA) 进行签名的证书,服务器随附了专用密钥以及已签名的证书.您可以针对由 CA 进行签名的证书生成新的专用密钥和证书签名请求 ...
- 基于openssl工具完成自建CA以及为server,client颁发证书
文章目录 一.openssl简介 1.1 主要构成部分 1.2 openssl用途 1.3 证书.密钥.CSR请求文件.CRL列表 查看命令 二.RSA密钥操作 2.1密钥生成 2.2 转换命令 2. ...
- 基于OpenSSL自建CA和颁发SSL证书
关于SSL/TLS介绍见文章 SSL/TLS原理详解. 关于证书授权中心CA以及数字证书等概念,请移步 OpenSSL 与 SSL 数字证书概念贴 . openssl是一个开源程序的套件.这个套件有三 ...
- OpenSSL生成CA自签名根证书和颁发证书和证书提取
CA根证书 生成流程 第一步 生成CA证书私钥 1.#生成ca私钥 (.key 和 pem 只是格式不一样) openssl genrsa -aes128 -passout pass:Test@202 ...
- 使用自签名SSL证书配置HTTPS,解决浏览器提示不安全警告
项目测试过程中需要将应用从HTTP升级到HTTPS,浏览了网上一些帖子,参考<WebLogic11g-单双向SSL配置(以Springside3为例)>一文使用openssl工具来自建CA ...
- window系统创建自签名SSL证书设置Https
原文链接:https://dsx2016.com/?p=1790 公众号:大师兄2016 应用场景 手机代理到电脑端 使用测试域名调试微信支付,需要在微信内置浏览器和手机自带浏览器唤起微信支付 测试公 ...
- 自建CA证书搭建https服务器
由于CA收费,所以可以自建CA,通过将CA导入浏览器实现https的效果,曾经12306购票就需要自行导入网站证书. 关于https 2015年阿里巴巴将旗下淘宝.天猫(包括移动客户端)全站启用HTT ...
- 信安实践——自建CA证书搭建https服务器
https://www.cnblogs.com/libaoquan/p/7965873.html 1.理论知识 https简介 HTTPS(全称:Hyper Text Transfer Protoco ...
- 信息安全实践Lab1-自建CA证书搭建https服务器
title: 信息安全实践Lab1-自建CA证书搭建https服务器 date: 2021-12-21 02:44:40 tags: 信息安全 categories: 信息安全实践 信息安全实践Lab ...
最新文章
- taskset -pc PID 查看线程占用cpu核
- 在Android开发中,有哪些好的内存优化方式?如何避免 Out Of Memory(OOM) ?
- 2.5 linux C 进程与多线程入门--(5)使用互斥量进行同步
- sql server检查临时表是否存在
- 【Python】青少年蓝桥杯_每日一题_7.11_画太阳
- 【汇编语言】8086汇编,快速搞定各种寻址方式:立即数寻址 / 寄存器寻址 / 存储器寻址
- python中文编程教学_中谷python中文视频教程(全38集)
- 十四个方法提高博客的页面访问量
- 学设计要学python吗_北京学习Python设计大概需要多长时间能学会
- OCP 12c最新考试原题及答案(071-4)
- 最高响应比优先算法(HRRF)及例题详解
- 使用STM32CubeMX和SW4STM32在Nucleo-F401RE开发板轻松实现Blinky闪烁 [
- android root 的作用,安卓手机Root好不好?手机Root后有什么好处和影响?
- 生来只为丈量天空,开普勒的传奇一生
- linux 安装mantis,在Ubuntu 18.04系统上安装Mantis Bug Tracker[MantisBT]
- 浏览器突然不能上网,DNS问题
- 关于印发《2000国家大地坐标系推广使用技术指南》和《大地测量控制点坐标转换技术规程》的函
- 二维码推广方法20种
- C语言——整数直角三角形
- android studio高德地图的显示于定位(附带逆地理编码围栏)