飞污熊博客

静下心来做一件事

本篇文章就是来个大家普及一下证书的格式。

根据不同的服务器以及服务器的版本,我们需要用到不同的证书格式,就市面上主流的服务器来说,大概有以下格式:

.DER .CER文件是二进制格式,只保存证书,不保存私钥。
.PEM,一般是文本格式,可保存证书,可保存私钥。
.CRT,可以是二进制格式,可以是文本格式,与 .DER 格式相同,不保存私钥。
.PFX .P12,二进制格式,同时包含证书和私钥,一般有密码保护。
.JKS,二进制格式,同时包含证书和私钥,一般有密码保护。

DER该格式是二进制文件内容,Java 和 Windows 服务器偏向于使用这种编码格式。

阅读全文 »

在CentOS7和JDK8中,默认使用的openssl或keytool命令生成的PKCS12证书库, 使用的加密算法为弱加密算法pbeWithSHA1And40BitRC2-CBC,需要升级为新的安全算法。

可通过如下命令查看PKCS12格式的证书库文件详细信息。

阅读全文 »

本地开发联调的时候需要将代码快速更新至开发环境验证效果,无需走冗长的流水线发布流程,直接通过maven插件快速部署。

通过引入maven插件maven-antrun-plugin,可实现本地编译打包、scp复制到服务器、ssh远程执行脚本。 实现复制jar包到容器中,并最终重启容器的效果。

阅读全文 »

在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,如果数据库表结构更新了还得手动更新维护到文档中,很是繁琐。 无意之间发现了github上面有个人写了一个小工具专门来做这个事情,名字叫screw(螺丝刀),用了下很不错。这里特意记录一下。

工具的github地址:https://github.com/pingfangushi/screw

阅读全文 »

MkDocs是一个快速、简单、华丽的静态网站生成器,适用于构建项目文档。文档源文件以Markdown编写,并使用一个YAML文件来进行配置。 MkDocs生成完全静态的HTML网站,你可以将其部署到GitHub pages、Amzzon S3或你自己选择的其它任意地方。

MkDocs有一堆很好看的主题。 官方内置了两个主题: mkdocsreadthedocs, 也可以从MkDocs wiki中选择第三方主题, 或者自定义主题

阅读全文 »

这里总结常用软件的容器化安装步骤,环境为CentOS7。

环境准备要先安装Docker软件,配置好国内加速镜像,这个可以参考我的Docker教程入门篇。这里不再多讲。

这里演示如何在CentOS7上面通过Docker安装MySQL8版本。

拉取镜像文件:

1
docker pull mysql/mysql-server

启动镜像文件:

1
2
3
4
docker run -d -p 13306:3306 --name mysql \
-v /data/mysql/conf.d:/etc/mysql/conf.d \
-v /data/mysql/data:/var/lib/mysql \
mysql/mysql-server
阅读全文 »

除了 overlay,docker 还开发了另一个支持跨主机容器网络的 driver:macvlan。

macvlan 本身是 linxu kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址, 即多个 interface,每个 interface 可以配置自己的 IP。macvlan 本质上是一种网卡虚拟化技术,Docker 用 macvlan 实现容器网络就不奇怪了。

macvlan 的最大优点是性能极好,相比其他实现,macvlan 不需要创建 Linux bridge, 而是直接通过以太 interface 连接到物理网络。下面我们就来创建一个 macvlan 网络。

阅读全文 »

前面已经学习了 Docker 的几种网络方案:none、host、bridge 和 joined 容器, 它们解决了单个 Docker Host 内容器通信的问题。本章的重点则是讨论跨主机容器间通信的方案。

跨主机网络方案包括:

  • docker 原生的 overlay 和 macvlan。
  • 第三方方案:常用的包括 flannel、weave 和 calico。

docker 网络是一个非常活跃的技术领域,不断有新的方案开发出来,那么要问个非常重要的问题了: 如此众多的方案是如何与 docker 集成在一起的?

答案是:libnetwork 以及 CNM(草泥马?)。

阅读全文 »

前面的实验都是在一个host中,而真实环境中肯定会有多个主机。 容器在这些 host 中启动、运行、停止和销毁,相关容器会通过网络相互通信,无论它们是否位于相同的 host。

对于这样一个 multi-host 环境,我们将如何高效地进行管理呢?我们面临的第一个问题是:为所有的 host 安装和配置 docker。 如果一个个去安装肯定很麻烦又容易出错,手工方式效率低且不容易保证一致性,针对这个问题,docker 给出的解决方案是 Docker Machine。

阅读全文 »