专栏首页kevin-blogharbor使用自签名证书实现https

harbor使用自签名证书实现https

介绍

前面说了怎么搭建harbor仓库,这里讲一讲harbor实现https访问,因为只需要内网访问,没必要去申请一个ssl证书,所以我就用openssl颁发自签名证书,实现https访问。需要搭建一个dns服务器,让你的域名解析到你的harbo地址,具体教程,请看我上一篇的博客。

操作

在HTTPS的传输过程中,有一个非常关键的角色——数字证书,那什么是数字证书?又有什么作用呢?

所谓数字证书,是一种用于电脑的身份识别机制。由数字证书颁发机构(CA)对使用私钥创建的签名请求文件做的签名(盖章),表示CA结构对证书持有者的认可。数字证书拥有以下几个优点:

使用数字证书能够提高用户的可信度 数字证书中的公钥,能够与服务端的私钥配对使用,实现数据传输过程中的加密和解密 在证认使用者身份期间,使用者的敏感个人数据并不会被传输至证书持有者的网络系统上 X.509证书包含三个文件:key,csr,crt。

  • key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
  • csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
  • crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息 备注:在密码学中,X.509是一个标准,规范了公开秘钥认证、证书吊销列表、授权凭证、凭证路径验证算法等。

首先创建证书存放目录:

➜  mkdir -p /data/cert && cd /data/cert

创建 CA 根证书

➜  openssl req  -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt -subj "/C=CN/L=zhejiang/O=lisea/CN=harbor-registry"

生成一个证书签名, 设置访问域名为 kevinharbor.com

➜  openssl req -newkey rsa:4096 -nodes -sha256 -keyout kevinharbor.com.key -out server.csr -subj "/C=CN/L=zhejiang/O=lisea/CN=kevinharbor.com"

生成主机的证书

➜  openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out kevinharbor.com.crt

然后进入harbor安装目录修改harbor.cfg,修改下面几个选项

  • hostname = kevinharbor.com
  • ui_url_protocol = https
  • ssl_cert = /data/cert/kevinharbor.com.crt
  • ssl_cert_key = /data/cert/kevinharbor.com.key

重启服务

➜  sudo ./prepare
➜  docker-compose down -v
➜  docker-compose up -d

然后打开链接https://kevinharbor.com 浏览器可能会提示不安全的证书,这是因为我们是自己当CA机构,所以浏览器会不信任。添加信任就好

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Mysql索引

    MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

    kevinfaith
  • 树莓派安装dns服务器

    因为最近在完harbor,然后因为不想记ip,所以想着用一台空闲的树莓派做dns缓存服务器,兼dns服务器,实现域名访问harbor

    kevinfaith
  • python版本管理工具:pyenv

    这几天在学习python,因为我学的是python3的语法,但是我ubuntu默认安装的是python2,我sqlmap需要的环境也是python2的,但是我需...

    kevinfaith
  • css速查手册

    最近发现一个不错的英文版css速查手册,整理出来与小伙伴们分享下。不多说了,上代码~参考地址详情见附录~

    汐楓
  • dede:arclist orderby=weight dedecms列表页文章按权重排序无效问题

      平时我们有时会发现dedecms列表页文章按权重排序无效问题,找到list解析文件include/arc.listview.class.ph,发现排序规则里...

    ytkah
  • HTTP 实战(三) - HTTP各种特性总览

    8888服务提供的 html,html 文件中又向8887服务发送AJAX请求,这就是跨域了!

    JavaEdge
  • 为什么Note.js 里面没有sap.ui.core.Control.extend()这样的代码

    UI5 team的人写了一些Maven plugin,Maven build时,首先通过一个xslt在target folder生成一个note.api.js:

    Jerry Wang
  • 《SpringMVC从入门到放肆》十三、SpringMVC数据校验

    上一章,我们学习了SpringMVC的自定义类型转换器,但是如果转换后的数据传递到Controller的方法中,忽然发现有某些属性为Null了,这怎么办?我们需...

    I Tech You_我教你
  • 李理:递归神经网络RNN扼要

    用户1737318
  • ElasticSearch 近实时搜索

    随着 按段搜索 的发展,索引文档与文档可被搜索的延迟显着下降。新文档可以在数分钟内可被搜索,但仍然不够快。

    smartsi

扫码关注云+社区

领取腾讯云代金券