飞污熊博客

静下心来做一件事

netcat 是 Linux 系统中的网络工具,其通过 TCP 和 UDP 协议在网络中读写数据。如果与其他工具结合, 以及加上重定向功能,还可以实现很多不同的功能。所以其以体积小功能灵活而著称,可以用来做很多网络相关的工作。

CentOS7中安装命令

1
yum install nmap-ncat
阅读全文 »

一般设置代理方式是vi /etc/profile,然后添加下面内容

1
2
export http_proxy = http://username:password@yourproxy.com:8080/
export ftp_proxy = http://username:password@yourproxy:8080/

但是这种直接在配置文件里面写自己域账号的明文密码很不安全,如果是几个人共享一台机器,其他人可以直接看到你的密码。

阅读全文 »

环境配置

1.修改openssl配置文件

通过vi编辑文件/etc/pki/tls/openssl.cnf,更新内容如下,有的部分是更新,有的是增加。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[ CA_default ]
req_extensions = v3_req

[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth

[ v3_server_client ]
basicConstraints = critical, CA:FALSE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always, issuer:always
keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment, keyAgreement
extendedKeyUsage = critical, serverAuth, clientAuth
crlDistributionPoints = URI:https://example.com/xxx.crl

[ v3_sign ]
basicConstraints = critical, CA:FALSE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always, issuer:always
keyUsage = critical, digitalSignature
extendedKeyUsage = critical, codeSigning

[ v3_ca ]
basicConstraints = critical, CA:true
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
keyUsage = critical, cRLSign, digitalSignature, keyCertSign
crlDistributionPoints=URI:https://example.com/root.crl

[ crl_ext ]
authorityKeyIdentifier=keyid:always, issuer:always

**强烈提醒:**如果是要做客户端证书认证,证书类型一定要选v3_server_client

X.509 v3证书定义的扩展为用户或公钥以及在CA间的管理提供了额外的功能。X.509 v3证书的格式允许组织使用私有的扩展。 证书中的扩展被定义为criticalnon-critical。 一个使用证书的系统在接收到设置为critical但无法识别或无法处理的证书时,必须拒绝处理该证书。 一个non-critical的证书在无法识别时可能会被忽略。

  • 约束1:主机已经安装了OpenSSL,版本号1.0.2
  • 约束2:生成CA根证书前,请提前规划以下环境配置参数。
阅读全文 »

CipherSuite这个名词目前没看到有好的中文翻译,个人觉得翻译成加密算法套件比较合适。 Cipher泛指是密码学的加密算法,例如 aes, rsa, ecdh 等。 tls是由各类基础算法作为原语组合而成,一个CipherSuite是4个算法的组合:

  • 1个key exchange(密钥交换)算法
  • 1个authentication(身份认证)算法
  • 1个encryption(加密)算法
  • 1个message authentication code (消息认证码,简称MAC)算法

比如一个例子TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256。 表示的含义是TLS_ECDHE(密钥交换算法)_RSA(身份认证算法)_WITH_AES_128_GCM(AES128GCM对称加密算法) _SHA256(完整性包含的MAC算法)。

阅读全文 »

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

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

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

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

阅读全文 »

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

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

阅读全文 »