分类:编程

PHP

PHP – OpenSSL 生成CA私钥&证书及签发带SAN的证书

生成CA私钥及证书: 参考Example #1 Creating a self-signed certificate 使用上面的方法可以生成CA证书并使用,但是如果使用上面的方法直接生成的自签名域名证书,即使你把(CA)证书加入到了受信任的根证书列表,也不会受浏览器信任: NET::ERR_CERT_COMMON_NAME_INVALID 此服务器无法证实它就是 localhost – 它的安全证书没有指定主题备用名称。这可能是因为某项配置有误或某个攻击者拦截了您的连接。 你还需要把域名加入到SAN。 首先生成OpenSSL的配置文件: // Domain name place a […]

Read more No Comments
PHP

PHP 7.2 compile on Debian Stretch

Libraries: apt -y install \ libcurl4-openssl-dev \ libgd-dev \ libsodium-dev \ libxml2-dev \ libpcre3-dev \ libssl-dev \ libsqlite3-dev \ libzip-dev \ libbz2-dev \ libedit-dev \ libxmlrpc-epi-dev \ libxmlrpc-core-c3-dev \ libxslt1-dev \ libwebp-dev \ libreadline-dev Configure: ./configure \ –prefix […]

Read more
C/CPP, Unix Like

解除clock_gettime@@GLIBC_2.17的依赖

在x86_64的Debian Jessie上交叉编译一个mipsel架构的程序,能静态链接的都静态链接了。 程序编译好传送到mipsel架构的设备上时,ldd查看库的依赖,却提示 /lib/mipsel-linux-gnu/libc.so.6: version `GLIBC_2.17′ not found (⊙﹏⊙)b mipsel设备上运行着Debian Wheezy,使用的是glibc 2.13: # /lib/mipsel-linux-gnu/libc.so.6 GNU C Library (Debian EGLIBC 2.13-38+deb7u11) stable release ve […]

Read more No Comments
C/CPP, 编程

探讨C语言返回struct的实现

C语言基本类型的返回通过寄存器实现。 寄存器容量不大,一个结构体的大小不定,多塞几个成员,很容易就会超过寄存器的容量,不太可能通过寄存器一次性返回一个结构体。 把以下代码转为汇编,探个究竟: // return_struct.c struct the_struct { int num1; int num2; double num3; double num4; int *num_ptr1; int *num_ptr2; }; struct the_struct fun() { struct the_struct the_struct1; the_struct1.num1 = 1; the_str […]

Read more 2 Comments