因为目前环境在本地进行测试,所以我们采用自建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相关推荐

  1. openssl 自建ca,颁发客户端证书

    openssl 自建ca,颁发客户端证书 概念理解 数字证书: 数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而 ...

  2. 针对由 CA 进行签名的证书生成新的专用密钥和 CSR

    针对由 CA 进行签名的证书生成新的专用密钥和 CSR 对于由认证中心 (CA) 进行签名的证书,服务器随附了专用密钥以及已签名的证书.您可以针对由 CA 进行签名的证书生成新的专用密钥和证书签名请求 ...

  3. 基于openssl工具完成自建CA以及为server,client颁发证书

    文章目录 一.openssl简介 1.1 主要构成部分 1.2 openssl用途 1.3 证书.密钥.CSR请求文件.CRL列表 查看命令 二.RSA密钥操作 2.1密钥生成 2.2 转换命令 2. ...

  4. 基于OpenSSL自建CA和颁发SSL证书

    关于SSL/TLS介绍见文章 SSL/TLS原理详解. 关于证书授权中心CA以及数字证书等概念,请移步 OpenSSL 与 SSL 数字证书概念贴 . openssl是一个开源程序的套件.这个套件有三 ...

  5. OpenSSL生成CA自签名根证书和颁发证书和证书提取

    CA根证书 生成流程 第一步 生成CA证书私钥 1.#生成ca私钥 (.key 和 pem 只是格式不一样) openssl genrsa -aes128 -passout pass:Test@202 ...

  6. 使用自签名SSL证书配置HTTPS,解决浏览器提示不安全警告

    项目测试过程中需要将应用从HTTP升级到HTTPS,浏览了网上一些帖子,参考<WebLogic11g-单双向SSL配置(以Springside3为例)>一文使用openssl工具来自建CA ...

  7. window系统创建自签名SSL证书设置Https

    原文链接:https://dsx2016.com/?p=1790 公众号:大师兄2016 应用场景 手机代理到电脑端 使用测试域名调试微信支付,需要在微信内置浏览器和手机自带浏览器唤起微信支付 测试公 ...

  8. 自建CA证书搭建https服务器

    由于CA收费,所以可以自建CA,通过将CA导入浏览器实现https的效果,曾经12306购票就需要自行导入网站证书. 关于https 2015年阿里巴巴将旗下淘宝.天猫(包括移动客户端)全站启用HTT ...

  9. 信安实践——自建CA证书搭建https服务器

    https://www.cnblogs.com/libaoquan/p/7965873.html 1.理论知识 https简介 HTTPS(全称:Hyper Text Transfer Protoco ...

  10. 信息安全实践Lab1-自建CA证书搭建https服务器

    title: 信息安全实践Lab1-自建CA证书搭建https服务器 date: 2021-12-21 02:44:40 tags: 信息安全 categories: 信息安全实践 信息安全实践Lab ...

最新文章

  1. taskset -pc PID 查看线程占用cpu核
  2. 在Android开发中,有哪些好的内存优化方式?如何避免 Out Of Memory(OOM) ?
  3. 2.5 linux C 进程与多线程入门--(5)使用互斥量进行同步
  4. sql server检查临时表是否存在
  5. 【Python】青少年蓝桥杯_每日一题_7.11_画太阳
  6. 【汇编语言】8086汇编,快速搞定各种寻址方式:立即数寻址 / 寄存器寻址 / 存储器寻址
  7. python中文编程教学_中谷python中文视频教程(全38集)
  8. 十四个方法提高博客的页面访问量
  9. 学设计要学python吗_北京学习Python设计大概需要多长时间能学会
  10. OCP 12c最新考试原题及答案(071-4)
  11. 最高响应比优先算法(HRRF)及例题详解
  12. 使用STM32CubeMX和SW4STM32在Nucleo-F401RE开发板轻松实现Blinky闪烁 [
  13. android root 的作用,安卓手机Root好不好?手机Root后有什么好处和影响?
  14. 生来只为丈量天空,开普勒的传奇一生
  15. linux 安装mantis,在Ubuntu 18.04系统上安装Mantis Bug Tracker[MantisBT]
  16. 浏览器突然不能上网,DNS问题
  17. 关于印发《2000国家大地坐标系推广使用技术指南》和《大地测量控制点坐标转换技术规程》的函
  18. 二维码推广方法20种
  19. C语言——整数直角三角形
  20. android studio高德地图的显示于定位(附带逆地理编码围栏)

热门文章

  1. [Office] 公务员WPS Excel常用的一些技巧方法
  2. 环境配置 python 3.6+Anaconda+cuda9.0+cudNN7.0+Tensorflow
  3. 【网络】MTU理解、MTU对上层协议的影响
  4. 【linux】按键盘Backspace键终端出现^H
  5. 十进制与二进制转换(负数+正数)
  6. 泰康和百度智能云为何相互需要?
  7. haozi/xss-demo通关
  8. 域名怎样实现自动跳转
  9. 怎样装系统(附图文教程)
  10. Linux 多点电容触摸屏