CentOs下Apache服务器配置SSL证书

<h2>CentOs下Apache服务器配置SSL证书</h2><p><br/></p><p>本文介绍如何为CentOs下Apache服务器上的网站配置SSL证书。包括两种情况:</p><p>1)为在Apache上运行的网站配置SSL;</p><p>2)为Apache反向代理的Tomcat网站配置SSL。</p><p><br/></p><p><br/></p><p>下载SSL相关文件下载到本地,是一个压缩包,包内有三个文件(以www.test.cn为例):</p><p>1234567_www.test.cn.key</p><p>1234567_www.test.cn_chain.crt</p><p>1234567_www.test.cn_public.crt</p><p><br/></p><p>2、安装ssl模块</p><p>默认Apache是没有安装SSL模块的,使用命令安装:</p><p>yum installl -y mod_ssl</p><p><br/></p><p>3、打开443端口</p><p>在阿里云ECS控制台上配置安全规则组,监听443端口。</p><p><br/></p><p>4、上传ssl文件</p><p>服务器 httpd 目录下新建子目录ssl:</p><p>mkdir ssl</p><p><br/></p><p>把三个SSL文件上传到ssl目录。如何上传看 这里第3.2小节。</p><p><br/></p><p>5、配置www.test.cn的SSL</p><p>1)修改ssl.conf文件</p><p>vi /etc/httpd/conf.d/ssl.conf</p><p><br/></p><p>找到下面内容,把 DocumentRoot 和 ServerName 改成自己网站的对应内容</p><p>&lt;VirtualHost _default_:443&gt;</p><p>DocumentRoot &quot;/var/www/html/test&quot;</p><p>ServerName www.test.cn:443</p><p><br/></p><p>继续向下,找到这三行:修改为自己的对应文件路径和名称。</p><p>SSLCertificateFile /etc/httpd/ssl/1234_www.test.cn_public.crt</p><p>SSLCertificateKeyFile /etc/httpd/ssl/1234_test.cn.cn.key</p><p>SSLCertificateChainFile /etc/httpdssl/1234_www.test.cn_chain.crt</p><p><br/></p><p>修改完毕后保存并退出。到此配置就完成了,不过我们可能还希望当用户用http://访问网站时,自动跳转到https访问。</p><p><br/></p><p>2)http强制跳转https</p><p>修改vhost-name.conf</p><p>vi /etc/httpd/vhost-conf.d/vhost-name.conf</p><p>找到:</p><p>&lt;VirtualHost *:80&gt;</p><p>DocumentRoot /var/www/html/test</p><p>ServerName http://www.test.cn</p><p>&lt;/VirtualHosot&gt;</p><p>&lt;Directory /var/www/html/test&gt;</p><p>Options Indexes FollowSymLinks</p><p>AllowOverride All</p><p>Order allow,deny</p><p>Allow from all</p><p>&lt;/Directory&gt;</p><p><br/></p><p>添加三行内容</p><p>RewriteEngine on</p><p>RewriteCond %{SERVER_ORT} !^443$</p><p>RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]</p><p><br/></p><p>修改完毕后如下:</p><p>&lt;VirtualHost *:80&gt;</p><p>DocumentRoot /var/www/html/test</p><p>ServerName http://www.test.cn</p><p>&lt;/virtualhost&gt;</p><p>&lt;Directory /var/www/html/test&gt;</p><p>Options Indexes FollowSymLins</p><p>AllowOverride All</p><p>Order allow,deny</p><p>Allow from all</p><p><br/></p><p>RewriteEngine on</p><p>RewriteCond %{SERVER_PORT} !^443$</p><p>RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]</p><p>&lt;/directory&gt;</p><p>保存修改并退出。</p><p><br/></p><p>重新启动Apache。浏览器输入www.test.cn可以正常访问到https://www.test.cn。</p><p><br/></p><p>6、配置level2.test.cn的SSL</p><p>1)上传文件参见第4步。</p><p>2)修改ssl.conf文件</p><p>vi /etc/httpd/conf.d/ssl.conf</p><p><br/></p><p>a. 复制&lt;VirtualHost _default_:443&gt;中的所有内容并在文件末尾粘贴。</p><p>上面命令功能:显示行号,把第16到217行复制到第218行。</p><p>:set number</p><p>:16,217 copy 218</p><p><br/></p><p>把复制的&lt;VirtualHost _default_:443&gt;修改为&lt;VirtualHost *:443&gt;,这将是level2.test.cn的配置内容。</p><p><br/></p><p>b.找到 DocumentRoot 和 ServerName :</p><p>&lt;VirtualHost *:443&gt;</p><p>ServerName level2.test.cn:443</p><p>ProxyPreserveHost On</p><p>ProxyPass / http://tomcatIp:8080/</p><p>ProxyPassReverse / http://tomcatIp:8080/</p><p>proxPreserveHost On</p><p>ProxyPass /project-war-name http://tomcatIp:8080/project-war-name</p><p>ProxyPassReverse /project-war-name http://tomcatIp:8080/project-war-name</p><p><br/></p><p><br/></p><p>修改的内容包括:</p><p>注释DocumentRoot;</p><p>修改ServerName 为level2.test.cn:443;</p><p>新增6行内容。</p><p><br/></p><p>c.继续向下,找到这三行:修改为自己的对应文件路径和名称。</p><p>SSLCertificateFile /etc/httpd/ssl/1234_level2.test.cn_public.crt</p><p>SSLCertificateKeyFile /etc/httpd/ssl/1234_level2.test.cn.key</p><p>SSLCertificateChainFile /etc/httpd/ssl/1234_level2.test.cn_chain.crt</p><p><br/></p><p>保存修改并退出。</p><p><br/></p><p>3)http强制跳转https</p><p>参见5.2),修改完全相同。</p><p><br/></p><p>重新启动Apache。</p><p>浏览器输入level2.test.cn可以正常访问https:/level2.test.cn。</p><p>浏览器输入level2.test.cn/project-war-name可以正常访问https:/level2.test.cn/project-war-name。</p><p><br/></p>
RangeTime:0.008400s
RangeMem:211.65 KB
返回顶部 留言