前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Linux下的Apache环境部署SSL证书

如何在Linux下的Apache环境部署SSL证书

原创
作者头像
乐网网络
发布2019-04-09 11:11:20
2.2K0
发布2019-04-09 11:11:20
举报
文章被收录于专栏:站长去哪儿站长去哪儿

随着HTTPS的火热,越来越多的小伙伴愿意去配置SSL证书(毕竟全浏览器绿标哦),上次发布了如何在IIS环境下配置SSL后,部分小伙伴留言说需要阿帕奇的教程,今天我们就为大家更新下哈。(上次也说了,HTTPS有什么样的好处,大家不会不知道吧)

下面看看如何在apache环境下安装吧。

如何在CentOS配置Apache的HTTPS服务,这里以自签证书(仅用于测试)为例:如果CentOS已经安装了Apache Web服务器,我们需要使用OpenSSL生成自签名证书。如果尚未安装OpenSSL,它可以使用yum来安装。

# yum install mod_ssl openssl

【生成一个自签名证书】下面的命令可以被用来产生一个自签名的证书。首先,生成2048位的加密私钥。 # openssl genrsa -out ca.key 2048

【生成证书签名请求(CSR)】 # openssl req -new -key ca.key -out ca.csr

【生成X509自签名证书】 # openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

【创建证书后将文件复制到对应目录】 # cp ca.crt /etc/pki/tls/certs/ # cp ca.key /etc/pki/tls/private/ # cp ca.csr /etc/pki/tls/private/

【配置Apache Web服务器】首先,修改下面的配置文件: # vim /etc/httpd/conf.d/ssl.conf ### overwrite the following parameters ### SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key ### The following parameter does not need to be modified in case of a self-signed certificate. ### ### If you are using a real certificate, you may receive a certificate bundle. The bundle is added using the following parameters ### SSLCertificateChainFile /etc/pki/tls/certs/example.com.ca-bundle然后重新启动httpd服务使更改生效。 # service httpd restart执行到该步骤,Web服务器现在可以使用HTTPS了。

【调整虚拟主机】 Apache Web服务器可以配置为多个Web站点。这些站点在httpd的配置文件中以虚拟主机的形式定义。例如,让我们假设我们的Apache Web服务器托管站点为freessl.wosign.com,网站所有的文件都保存在/var/www/html/freessl目录。

虚拟主机HTTP配置:

# vim /etc/httpd/conf/httpd.conf NameVirtualHost *:80 ServerAdmin email@example.com DocumentRoot /var/www/html/freessl ServerName freessl.wosign.com

我们可以参考上面的配置创建HTTPS虚拟主机。

# vim /etc/httpd/conf/httpd.conf NameVirtualHost *:443 SSLEngine on SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key AllowOverride All ServerAdmin email@example.com DocumentRoot /var/www/html/freessl ServerName freessl.wosign.com

需要按照上面的配置,定义每个虚拟主机。添加虚拟主机后,重新启动Web服务。

# service httpd restart

现在的虚拟主机就可以使用HTTPS了。

可选的配置:强制Apache Web服务器始终使用HTTPS如果由于某种原因,你需要站点的Web服务器仅使用HTTPS,您需要将所有HTTP请求(端口80)重定向到HTTPS(端口443)。 Apache Web服务器可以容易地做到这一点。

1、强制网站使用HTTPS访问如果要强制网站使用HTTPS,httpd文件配置如下:

# vim /etc/httpd/conf/httpd.conf ServerName www.example.com:80 Redirect permanent / https://www.example.com # service httpd restart

2,强制虚拟主机使用HTTPS如果要强制在虚拟主机上使用HTTPS,配置如下:

# vim /etc/httpd/conf/httpd.conf ServerName freessl.wosign.com Redirect permanent / https://freessl.wosign.com/ # service httpd restart

这样差不多OK了,但是大部分情况下https和https是两个站点,这样的情况下我们需要对http进行跳转(和iis重写一个道理),强制跳转到https的页面才有绿标啊。跳转分为整站跳转和部分目录跳转(小编建议还是做全站跳转吧,这样够6)如果需要整站跳转,则在网站的配置文件的<Directory>标签内,键入以下内容:

1.RewriteEngine on

2.RewriteCond %{SERVER_PORT} !^443$

3.RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]

复制代码

如果对某个目录做https强制跳转,则复制以下代码:

1.RewriteEngine on

2.RewriteBase /yourfolder

3.RewriteCond %{SERVER_PORT} !^443$

4.#RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]

5.RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

复制代码

如果只需要对某个网页进行https跳转,可以使用redirect 301来做跳转!redirect 301 /你的网页 https://你的主机+网页

希望以上内容对各位小伙伴起到一定帮助,能够让自己是网站轻松上绿。所有的这些前提是你有有自己的SSL证书(腾讯云免费申请ssl证书),免费的也好,付费的也罢,总之你需要有,如何获取免费的SSL证书,请查看小编的历史文章即可。

如果您有什么好的意见或建议,欢迎下方留言给小编哦,小编看到一定回复您,有什么想说的也可以写下来,感谢各位小伙伴的支持。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
轻量应用服务器
轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门开源软件打包实现一键构建应用,提供极简上云体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档