实战经验:为本地服务器创建自签名证书链
有时需要生成一张自签名证书用于本地Web服务器来实现HTTPS。
一,以下为创建自签名证书的基本步骤:
1) 创建根证书
创建根证书需要的RSA私钥:
openssl genrsa -aes256 -out ca.key.pem 4096
根据RSA私钥创建根证书:
openssl req -config openssl_ca.cnf -key ca.key.pem -new -x509 -day...
小技巧:解决VS2010因为”将来时间”而无法增量编译的问题
今天是2017年7月29日,因为某些原因,我修改了系统时间到将来的一天,2017年7月30日。修改完系统时间,继续工作。
当把时间改回去后,VS2010的增量编译不能顺利进行了。每次项目编译,不管有没有改动过源代码,VS2010都会对项目进行编译,并出现“All outputs are up-to-date”提示。
这个问题对于大型项目来说,是一件比较耗费时间的事情。看起来,修改系统时间会导致VS...
小技巧:优化HTTPS站点配置
通常,我们在部署HTTPS站点后,可以通过网站上专门的测试工具来检测站点的配置是否已经最优。有如下两个站点可供使用:
1) SSLLabs
2) MySSL
以下为需要注意的几个优化点:
1) 禁用SSL 3.0
目的:防范POODLE漏洞:Padding Oracle On Downgraded Legacy Encryption
该漏洞影响曾经广为使用的SSL 3.0加密标准。攻击者可以利用该...
错误信息:The ACME server was probably unable to reach
在使用Let’s Encrypt在IIS上安装SSL证书时,Let’s Encrypt会首先尝试对IIS站点进行有效性验证。其基本过程为:
1) 接收用户输入的主机名,如www.test.com
2) 接收用户输入的站点根目录的全路径,如c:\wwwroot
3) 尝试在站点根目录下创建.well-known目录并在该目录生成一个文件,文件内容为一串随机字符串,Let...
小技巧:VS2010中添加控件成员变量没有反应的问题
今日发现奇怪的问题:
1) 系统中有一个已经使用多时的对话框,在对话框上添加一个按钮。
2) 在按钮上右键,选择”添加成员变量”。
3) 通常情况下,VS2010会弹出如下所示的对话框用于输入成员变量的信息。
但是,今天并没有。
新建一个对话框,并重复上述步骤,没有出现此问题。于是,对出现问题的对话框和正常情况的对话框进行全方位对比,发现
1) 两者对应的类的头文件和...
小技巧:借助boost库实现Windows自定义消息的自动化定义
在开发Windows桌面程序,经常会碰到需要使用自定义消息来实现某种功能。通常我们会这样定义一个Windows消息:
#define WM_CUSTOM_JOB_DONE (WM_APP + 100)
这里,我们定义了一个自定义消息WM_CUSTOM_JOB_DONE,该消息用于通知指定的窗口工作已经完成。
有朋友可能会问了,为什么不是使用WM_USER呢?
我们先来看看WM_USER和W...
实战经验:使用WinINet库访问HTTP代理服务器
在用户使用桌面软件的时候,开发者可能会面临各种各样的网络环境。比如,用户可能在家中使用宽带直连到互联网,也可能用户在公司办公,公司因网络安全需要不直接开放外网权限,而是提供HTTP代理的方式为员工提供上网服务。
在MFC中,如何向和一台FTP或者HTTP服务器打交道,常用的库是WinINet库。该库提供了提供了一组高层API来封装底层通信协议,如FTP, HTTP等。下面就讲一讲如何使用WinIN...
实战经验:Linux Source NAT在Ping场景下的应用
有时候,有这样的一种需求:
需要修改IP数据包中的源地址,比如,从某一个主机发送Ping包到另一个主机,需要修改源地址为另一个源(通常,发出Ping请求的主机有多个网卡地址)。
为了解决这一需求,Linux下的netfilter组件中有个Source NAT的功能,可以修改IP数据包中的源地址。
此功能实际上是通过iptables在POSTROUTING链中添加一条规则,此规则在数据包被最终发送出...
深度理解:VMware中Bridge和NAT的使用方法及注意事项
在做网络实验时,为了避免对本地系统的破坏,一般会考虑在虚拟机中进行。今天来介绍一下VMware这款虚拟机中关于网络设置方面的内容。
VMware创建虚拟机后,需要为虚拟机指定网络连接模式,在实际工作中,我使用Bridge和NAT模式比较多,以下是这两种模式下的使用方法及注意事项。
1) Bridge模式
使用方法:
当选择网络模式为Bridge模式时,虚拟机相当于直接连接到宿主机所在的网络,如果宿...
代码片段:Crypto++使用方法汇总
今天来说简单汇总一下著名C++编解码库Crypto++的使用方法,以下仅列出代码片段,详细的API解释请大家参考在Crypto++官网文档。
基本上这个库的调用方式比较少见,但是学会了其中一种,其他的算法函数也是可以融会贯通的。
1) AES加密:
string m_buf;
CryptoPP::AES::Encryption aes_encryption(m_key, CryptoPP::...


