海运的博客

使用OpenSSL转换X509 PEM与PFX证书

发布时间:February 9, 2013 // 分类:OpenSSL // No Comments

LinuxApacheNginx通常使用X509格式SSL证书,WindowsIIS使用PFX格式SSL证书,可以使用OpenSSL互转X509与PFX。
X509转PFX:

#https://www.haiyun.me
openssl pkcs12 -export -inkey www.haiyun.me.key -in www.haiyun.me.cer -out www.haiyun.me.pfx

PFX转X509:

openssl pkcs12 -in www.haiyun.me.pfx -nodes -out www.haiyun.me.pem 
openssl rsa -in www.haiyun.me.pem -out www.haiyun.me.key
openssl x509 -in www.haiyun.me.pem -out www.haiyun.me.crt 

Windows 2008下IIS7配置StartSSL免费证书

发布时间:February 9, 2013 // 分类:IIS,OpenSSL // No Comments

申请StartSSL免费SSL证书见:https://www.haiyun.me/archives/startssl-free-ssl.html,获取到证书私钥及公钥,然后生成IIS可导入的PFX证书。
1.使用StartSSL网页提供的PFX生成工具:
StartSSL生成IIS下PFX证书.png
2.使用OpenSSL转为PFX证书
然后在IIS管理器中导入生成的PFX证书并绑定到相应域名。

Openssl配合tar加密解密文件

发布时间:September 5, 2012 // 分类:OpenSSL // No Comments

单独使用openssll加密解密文件:

#列出支持的加密算法
openssl enc -list
#加密文件
openssl enc -e -aes-256-cfb -pbkdf2 -salt -iter 10000 -md sha256 -k 123456 -in file -out file.aes
#解密文件
openssl enc -d -aes-256-cfb -pbkdf2 -salt -iter 10000 -md sha256 -k 123456 -in file.aes -out file
#使用pbkdf2算法通过密码、随机salt、iter次数、sha256生成aes加密key和iv
#-salt默认启用
#-md默认sha256
#-iter默认10000

使用tar压缩加密解密文件:

#tar打包加密文件
tar -zcf - directory | openssl enc -e -aes-256-cfb -pbkdf2 -k 123456 -out directory.tar.gz.aes 
#tar打包解密文件
openssl enc -d -aes-256-cfb -pbkdf2 -k 123456 -in directory.tar.gz.aes | tar -xz -f - 

也可使用gpg加密解密文件

https://www.openssl.org/docs/man1.1.1/man1/enc.html
https://imil.net/blog/posts/2020/openssl-pbkdf2-default-iterations/

Openwrt下使用Stunnel加密Squid取代SSH转发

发布时间:September 3, 2012 // 分类:Squid,OpenWrt // No Comments

Stunnel真是个好东西,可以使用SSL加密任意两点间的TCP连接,本文记录使用Stunnel加密Squid代理服务器来代替SSH数据转发
服务器端配置Squid正向代理:

#https://www.haiyun.me
http_port 127.0.0.1:8080
icp_port 0
visible_hostname proxy.www.haiyun.me
cache_mgr  admin@www.haiyun.me
cache_effective_user squid
cache_effective_group  squid 
via off     
forwarded_for off
acl localnet src 127.0.0.0/24
http_access allow localnet

生成OpenSSL证书:

openssl req -new -x509 -days 365 -nodes -out stunnel.pem -keyout stunnel.pem
chmod 400 stunnel.pem

服务器端Stunnel安装配置:

yum install stunnel
compression=zlib
syslog=no
debug=7
output=/var/log/stunnel.log
setuid=nobody
setgid=nobody
pid=/var/run/stunnel.pid
cert=/etc/stunnel/stunnel.pem
key=/etc/stunnel/stunnel.pem
client=no
[squid]
accept=8000
connect=127.0.0.1:8080

Openwrt下安装配置Stunnel客户端:

opkg update
opkg install stunnel
compression=zlib
syslog=no
debug=7
output=/var/log/stunnel.log
pid=/var/run/stunnel.pid
client=yes
[squid]
accept=8080
connect=www.haiyun.me:8000

客户端服务器端启动Stunnel:

stunnel

此时客户端和Squid代理服务器之间的数据是使用SSL加密的,其它HTTP代理服务器也同样适用此方法,如Kingate代理服务器

Postfix/dovecot配置SMTP/IMAP SSL加密连接

发布时间:July 10, 2012 // 分类:Mail,OpenSSL // No Comments

首先生成SSL证书,如需SSL证书认证可先生成证书请求文件再转交CA认证。
Postfix配置SSL:

#https://www.haiyun.me
cat /etc/postfix/main.cf
#smtpd_tls_auth_only = yes
smtpd_tls_key_file = /etc/postfix/CA/private/server.key
smtpd_tls_cert_file = /etc/postfix/CA/certs/server.crt
smtpd_tls_CAfile = /etc/postfix/CA/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

开启Postfix服务器SMTPS端口监听:

cat /etc/postfix/master.cf
smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

测试SMTP SSL是否生效:

openssl s_client -connect smtp.haiyun.me:smtps
SSL-Session:
    Protocol  : TLSv1
    Cipher    : DHE-RSA-AES256-SHA
    Session-ID: 65424E5937C2EE0453E796BA179DF8F8D92A523FAD5F170CFE11A64E5A0441D3
    Session-ID-ctx: 
    Master-Key: 43EC9C65F8215B3304C62A4E860116D6CA58BFE732514F5B31EC67196D993F43A19E837CA9BD48D6008A06874ED83BB0
    Key-Arg   : None
    Krb5 Principal: None
    Start Time: 1341366288
    Timeout   : 300 (sec)
    Verify return code: 19 (self signed certificate in certificate chain)
---
220 mail.www.haiyun.me ESMTP Postfix
quit
221 2.0.0 Bye

Dovecot配置SSL:

cat /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

测试IMAP/POP SSL是否生效:

openssl s_client -connect smtp..haiyun.me:imaps
openssl s_client -connect smtp..haiyun.me:pops
SSL-Session:
    Protocol  : TLSv1
    Cipher    : DHE-RSA-AES256-SHA
    Session-ID: A6CD69E16438BB8CBEA7ABCDF74F1BDC844E00C4C7A3B2446FB87E230788D4A5
    Session-ID-ctx: 
    Master-Key: D6135140AC6BAD1AABFD85CE1A28FA66387B60CF6E6744B0F3BDCEFB82F6B7EA4FF28461E6A007DC03B91787C50CDFE0
    Key-Arg   : None
    Krb5 Principal: None
    Start Time: 1341363344
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
* OK Dovecot ready.
分类
最新文章
最近回复
  • fengfeng: N1 armbian 能有编译下内核吗。。我要开启can 不懂怎么操作
  • 1: 方法一ngtcp2要改下:./configure PKG_CONFIG_PATH=/usr/l...
  • 海运: 关闭服务器
  • 海风: override.battery.charge.low以及override.battery.r...
  • koldjf: 不能过滤
  • 杰迪武士: 此文甚好甚强巨,依照此文在树莓派2 + Rasbian上部署成功 感谢博主美文共赏
  • 海运: ups不知有没选项可设置此参数,不过你可以在另外一台电脑上安装nut客户端自动关机。
  • kgami: 想请教一下,设置了的电脑自动关机之后,几秒后UPS怎么也跟着关机了,导致另外一台电脑没关机就断...
  • 海运: 写的很详细了啊,/etc/nut/hosts.conf用以nut-cgi连接nut服务器参数,...
  • ryan: 请问下nginx配置好了,怎么和这个nut链接呢?最后可视化管理这块能给个详细一点的教程么?谢谢。