CentOS 曲折的绑定域名以及绑定SSL的经历

这次由于APP需要搬家以及需要https的缘故,学校的服务器不能自由申请于是乎我们选择了绑定自己的域名,不过没想到还有这么多事情……略麻烦。

首先找到httpd.conf,我的在/etc/httpd/conf/httpd.conf
shift+G到最后

<VirtualHost *:80>
    ServerAdmin csvwolf@qq.com
    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 #最后重启防火墙使配置生效

重启,彻底搞定了。

植入部分

如果您觉得文章不错,可以通过赞助支持我。

如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。

标签: centos, 命令, 使用, 安装

添加新评论