您的位置:首页 > 理论基础 > 计算机网络

我在阿里云服务器上的 centos7 上 apache 安装https pem 证书的悲惨经历

2017-06-09 20:28 501 查看
时间 2017-6-9 夜。。。

1. 首先肯定是申请证书,在阿里云左侧菜单-》云盾-》证书服务、

点击进入选择购买证书,当然买了那个免费的,csr 文件则由系统生成就好了。

2. 申请完后进入证书列表,点击后面的下载,进入下载页面可以选择,我选的apache

下面的是阿里云的注释。

4. 打开Apache配置文件 httpd.conf 开启模块(就是去掉前面的注释#)

#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)

#Include conf/extra/httpd-ssl.conf

不得不说阿里云漏了一个 , #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 忘了开。。

5. 打开对应的 conf/extra/httpd-ssl.conf 文件

这个文件是apache https 的web 配置。 文件里面注释非常多,其实就是一个普通的web配置。 如下是我的配置,如果你有多个https服务器的话,可以把下面的部分截取出来,每个web服一个文件一份配置,然后再include 进来。(就像http服务器的web配置那样。)

Listen 443

SSLProtocol TLSv1 TLSv1.1 TLSv1.2

#SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4

SSLPassPhraseDialog  builtin

SSLSessionCache        "shmcb:/alidata/server/httpd/logs/ssl_scache(512000)"

SSLSessionCacheTimeout  300

<VirtualHost *:443>

DocumentRoot "/alidata/www/shengma"

ServerName qzd.qzyouxi.com:443

ServerAdmin qz@qzyouxi.com

ErrorLog "/alidata/server/httpd/logs/error_log1"

TransferLog "/alidata/server/httpd/logs/access_log1"

SSLEngine on

SSLCertificateFile /alidata/server/httpd/cert/public.pem

SSLCertificateKeyFile /alidata/server/httpd/cert/214138528660411.key

SSLCertificateChainFile /alidata/server/httpd/cert/chain.pem

<FilesMatch "\.(cgi|shtml|phtml|php)$">

    SSLOptions +StdEnvVars

</FilesMatch>

<Directory "/alidata/server/httpd/cgi-bin">

    SSLOptions +StdEnvVars

</Directory>

BrowserMatch "MSIE [2-5]" \

         nokeepalive ssl-unclean-shutdown \

         downgrade-1.0 force-response-1.0

CustomLog "/alidata/server/httpd/logs/ssl_request_log" \

          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

6. 配置完了记得重启 apache, 在apache 安装目录下的bin 目录下有  apachectl restart

重启完记得看一下 日志, 在apache 安装目录下的logs 里面的error_log 日志,是否有报错

没报错的话,执行, netstat -apn | grep httpd 查看apache是否已经在监听 443端口。

如果看到 0 0.0.0.0:443 说明在监听了。

7. httpd 已经在监听443端口之后,只要开启443 端口的防火墙就好了。

方法1. 使用centos默认的firewall

firewall 的命令有

停止 systemctl  stop firewalld.service

启动 systemctl  start firewalld.service

查看状态 systemctl status firewalld.service

开启端口 firewall-cmd --zone=public --add-port=443/tcp --permanent

查看端口是否开启防火墙 firewall-cmd --query-port=443/tcp

firewall-cmd --list-ports

     2. 关闭firewall ,使用常用的 iptables 

这个可以参考链接,https://segmentfault.com/a/1190000006736884

写的很详细。

8. 开启443 端口之后,可以在站长之家扫描,或者在linux 下个tcping , tcping www...com 443 查看端口是否已经开启。

9. 好吧,所有步骤都搞好了。发现,,,443端口没开启。。

10.查阅无数文档之后我不得解。

然后问了朋友, 原来我漏了一步,要上阿里云平台 安全策略哪里 手动开启一下443 端口

在阿里云 云盾,安全服务哪里。。。

11. 我表示无可奈何, 当晚至少查看几十分文档。。。没有一份提到这个。。。

作为常年在别人买的阿里云服务器下工作的人,我表示伤不起。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息