CentOS 曲折的绑定域名以及绑定SSL的经历
这次由于APP需要搬家以及需要https的缘故,学校的服务器不能自由申请于是乎我们选择了绑定自己的域名,不过没想到还有这么多事情……略麻烦。
首先找到httpd.conf,我的在/etc/httpd/conf/httpd.conf
shift+G到最后
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/skyposter
ServerName www.csvwolf.com
ErrorLog logs/higpa.csvwolf.com-errorlog
CustomLog logs/higpa.csvwolf.com-access_log common
</VirtualHost>
这样绑定域名完,然后重新启动(service httpd restart
),发现并没有绑定到我想要的目录。顿时想到在这个机子上似乎还装了Nginx,静态文件通过Apache来处理,而访问程序都是通过Nginx的。
运行netstat -nap|grep 80
,果然80端口其实是Nginx控制的。
然后就去找Nginx的配置文件:vi /etc/nginx/conf.d/default.conf
,把原来绑定的整段复制黏贴到最后,重启Nginx,就可以了。
接着开始绑定https,首先有了前车之鉴,看看443端口被谁占着:netstat -nap|grep 443
,结果显示是Apache,没事,那么继续折腾。
找到/etc/httpd/conf.d/ssl.conf
,找到<VirtualHost _default_:443>
加入:
DocumentRoot /var/www/html/skyposter
ErrorLog /usr/local/apache/logs/error_log
TransferLog /usr/local/apache/logs/access_log
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile /usr/local/apache/conf/ssl.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key
SSLCertificateChainFile /usr/local/apache/conf/sub.class1.server.ca.pem
把上面的_default_
改成*,保证以上路径文件均存在。
然后运行一下,需要输入生成私钥时的密码。如果可解基本成功了,也可以用openssl手动解。
openssl rsa -in ssl.key -out ssl2.key
然后把
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key
改成
SSLCertificateKeyFile /usr/local/apache/conf/ssl2.key
当然避免语法错误,在重启之前可以先用service httpd configtest
,通过之后再测试。
这里我遇到了别的问题,由于Nginx总体感觉没什么用,然后就直接修改了端口,结果发现提示
[warn] _default_ VirtualHost overlap on port 80, the first has precedence
这里让人很蛋疼,然而并不能找到default,后来搜索了一下发现在绑定域名的句子前面加上NameVirtualHost *:80
就能不提示了,正常启动,再也不报什么问题了,然而问题来了,https依旧无法访问。
原来作为傻逼是我端口没开。
vi /etc/sysconfig/iptables
如法炮制开启443.
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT #(允许443端口通过防火墙)
/etc/init.d/iptables restart #最后重启防火墙使配置生效
重启,彻底搞定了。
植入部分
如果您觉得文章不错,可以通过赞助支持我。
如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。