服务器类
Dec
21
Nginx支持单IP多域名SSL证书需要OpenSSL支持,由于CentOS5.X系统自带的OpenSSL版本太低不支持,所以首先需要编译安装一个高版本的openssl,CentOS 6.X的系统自带的openssl版本大于0.98以上,一般编译好的nginx都是支持的。
检查nginx是否支持TLS SNI support:
/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.10.2
TLS SNI support disabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
TLS SNI support disabled 这样是不支持的。
查看openssl的版本:
下面开始升级openssl:
wget ftp://ftp.openssl.org/source/openssl-1.0.2h.tar.gz
tar xzvf openssl-1.0.2h.tar.gz
cd openssl-1.0.2h
./config --prefix=/usr/local/openssl/ enable-shared enable-tlsext
make && make install
检查openssl的版本:
编译nginx:
检查现在是否支持TLS SNI support:
TLS SNI support enabled 现在已经支持了,再添加几个https的站点都正常了。
检查nginx是否支持TLS SNI support:
/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.10.2
TLS SNI support disabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
TLS SNI support disabled 这样是不支持的。
查看openssl的版本:
下面开始升级openssl:
wget ftp://ftp.openssl.org/source/openssl-1.0.2h.tar.gz
tar xzvf openssl-1.0.2h.tar.gz
cd openssl-1.0.2h
./config --prefix=/usr/local/openssl/ enable-shared enable-tlsext
make && make install
检查openssl的版本:
编译nginx:
检查现在是否支持TLS SNI support:
TLS SNI support enabled 现在已经支持了,再添加几个https的站点都正常了。
Dec
19
软件版本:OpenSSL 1.0.2h nginx/1.10.2
错误信息:
make -f objs/Makefile
make[1]: Entering directory `/data/2016/openresty-1.11.2.2/bundle/nginx-1.10.2'
cd /usr/local/openssl \
&& if [ -f Makefile ]; then make clean; fi \
&& ./config --prefix=/usr/local/openssl/.openssl no-shared \
&& make \
&& make install_sw LIBDIR=lib
/bin/sh: line 2: ./config: No such file or directory
make[1]: *** [/usr/local/openssl/.openssl/include/openssl/ssl.h] Error 127
make[1]: Leaving directory `/data/2016/openresty-1.11.2.2/bundle/nginx-1.10.2'
make: *** [build] Error 2
其实/usr/local/openssl/目录下面根本没有.openssl这个目录,找不到相关文件肯定会报错的了。
解决方法也很简单:
vi auto/lib/openssl/conf
31 CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
32 CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
33 CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
34 CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
把31行到34行中的.openssl删除
31 CORE_INCS="$CORE_INCS $OPENSSL/include"
32 CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"
33 CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a"
34 CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"
保存之后,再make就编译通过了。
错误信息:
make -f objs/Makefile
make[1]: Entering directory `/data/2016/openresty-1.11.2.2/bundle/nginx-1.10.2'
cd /usr/local/openssl \
&& if [ -f Makefile ]; then make clean; fi \
&& ./config --prefix=/usr/local/openssl/.openssl no-shared \
&& make \
&& make install_sw LIBDIR=lib
/bin/sh: line 2: ./config: No such file or directory
make[1]: *** [/usr/local/openssl/.openssl/include/openssl/ssl.h] Error 127
make[1]: Leaving directory `/data/2016/openresty-1.11.2.2/bundle/nginx-1.10.2'
make: *** [build] Error 2
其实/usr/local/openssl/目录下面根本没有.openssl这个目录,找不到相关文件肯定会报错的了。
解决方法也很简单:
vi auto/lib/openssl/conf
31 CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
32 CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
33 CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
34 CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
把31行到34行中的.openssl删除
31 CORE_INCS="$CORE_INCS $OPENSSL/include"
32 CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"
33 CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a"
34 CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"
保存之后,再make就编译通过了。
Jul
29
错误发生在内部测试使用的ESXI主机上的虚拟机,因为之前的ESXI主机raid卡和温度传感器报错,机器不能正常启动,所以就把磁盘换到另一台配置一样的机器上,启动之后ubuntu、freebsd、debian8、solaris、centos7虚拟机都连接正常,唯独两台CentOS 6.8系统的虚拟机不能连接,于是使用VMware vSphere Client连接ESXI打开控制台登录系统,执行ifconfig发现只剩下:
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:448 (448.0 b) TX bytes:448 (448.0 b)
执行 /etc/init.d/network restart
Shutting down loopback insterface: [ OK ]
Bringing up loopback insterface: [ OK ]
Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization.
[FAILED]
执行 ifconfig -a 发现没有eth0,却有一个eth1,原来是mac地址变化了,知道是什么问题就好办了,不重启机器你可以把eth1的mac地址记下,cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1 然后把里面的eth0改为eth1,HWADDR改为eth1的mac地址,然后service network restart或ifup eth1 就可以了。
如果你的机器可以重启,可以使用以下方法:
vi /etc/sysconfig/network-scripts/ifcfg-eth0 把里面的HWADDR改为eth1的mac地址之后保存。
vi /etc/udev/rules.d/70-persistent-net.rules 你会发现有两行配置,把eth0的那一行删除,把eth1改为eth0之后保存,类似于下面这样:
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:ce:cb:ee", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
使用第二种方法的可以把/etc/sysconfig/network-scripts/ifcfg-eth1删了,或者设置为开机不启动,然后执行init 6 或者reboot重新启动虚拟机,虚拟机重新启动之后网络正常了。
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:448 (448.0 b) TX bytes:448 (448.0 b)
执行 /etc/init.d/network restart
Shutting down loopback insterface: [ OK ]
Bringing up loopback insterface: [ OK ]
Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization.
[FAILED]
执行 ifconfig -a 发现没有eth0,却有一个eth1,原来是mac地址变化了,知道是什么问题就好办了,不重启机器你可以把eth1的mac地址记下,cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1 然后把里面的eth0改为eth1,HWADDR改为eth1的mac地址,然后service network restart或ifup eth1 就可以了。
如果你的机器可以重启,可以使用以下方法:
vi /etc/sysconfig/network-scripts/ifcfg-eth0 把里面的HWADDR改为eth1的mac地址之后保存。
vi /etc/udev/rules.d/70-persistent-net.rules 你会发现有两行配置,把eth0的那一行删除,把eth1改为eth0之后保存,类似于下面这样:
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:ce:cb:ee", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
使用第二种方法的可以把/etc/sysconfig/network-scripts/ifcfg-eth1删了,或者设置为开机不启动,然后执行init 6 或者reboot重新启动虚拟机,虚拟机重新启动之后网络正常了。