Aapache2开启https

 2018年8月25日18:40:232428次 
摘要

SSL免费证书的申请越来越容易了,于是在腾讯云上申请了个免费DV SSL证书,准备转移到腾讯cdn开启ssl访问(百度云加速免费用户虽然不限流量,但是不支持ssl)。以下是具体过程记录,谨做笔记。

登录https://buy.cloud.tencent.com/ssl,选择DV免费型证书,按提醒步骤一步一步申请,不再赘述。资料提交完成后会提醒正在审核,审核结束之后会有下载链接。

SSL免费证书的申请越来越容易了,于是在腾讯云上申请了个免费DV SSL证书,准备转移到腾讯cdn开启ssl访问(百度云加速免费用户虽然不限流量,但是不支持ssl)。以下是具体过程记录,谨做笔记。

登录https://buy.cloud.tencent.com/ssl,选择DV免费型证书,按提醒步骤一步一步申请,不再赘述。资料提交完成后会提醒正在审核,审核结束之后会有下载链接。

将下载到的以你的域名命名的压缩包解压,apache文件夹内的证书就是适用于apache2证书文件。其中1_root_bundle.crt是证书链文件,2_*.crt是证书文件,3_*.key是证书key文件。

用winscp或ftp工具打开你的服务器,在/etc/apache2文件夹内创建ssl_crt文件夹(或者在其他位置),将这三个文件上传。

打开sites-available文件夹,复制default-ssl.conf,重命名为 your_domain_ssl.conf。打开这个文件夹。将<VirtualHost _default_:443>改为<VirtualHost *:443>,在这一行下添加ServerName: 你的域名,修改DocumentRoot指向你的网站根目录。

  • 修改SSLCertificateFile指向你的证书文件,即2_*.crt文件。
  • 修改SSLCertificateKeyFile指向你的证书key文件,即3_*.key文件
  • 修改SSLCertificateChainFile指向你的证书链文件,即1_*.key文件

保存文件。并在sites-enabled文件夹建立该文件的软连接,使用命令 sudo /etc/init.d/apache2 restart,如果没有报错则启用ssl完成。我这里产生了个报错,apache2重启失败。如下图

Aapache2开启https

SSLSessionCache: ‘shcmb’ session cache not supported. 就是ssl session缓存模块shcmb不支持。

打开mods-available文件夹查看有无socache_shmcb.load文件,如果有,在mods-enabled文件夹建立该文件软连接启用该模块,重启apache2即可。

添加上述配置,保存后,给配置文件建立一个软连接,命令如下:

sudo a2ensite default-ssl

另:

怎么给网站开启https协议?Apache2下SSL证书安装配置方法

本文原创,未经允许,严禁装载

刚做本站的时候,我也不知道为什么要开启https协议,只是发现有很多网站都是https。当用Chrome浏览器打开本社区网站的时候,发现现实”不安全”,这对于有强迫症的我来说,是不能忍的,于是申请了免费的证书,花了一个多小时才搞定。开启https协议本身不难,但是内容很繁琐。

https具有加密传输通道,有效保障隐私数据密文传输,截取也无法解密。HTTP明文传输,没有SSL加密通道,任何人都可以轻松截取或篡改机密数据。

好了废话不多说,首先,需要申请证书,我用的是亚洲诚信(trustasia.com/)的免费证书,至于证书申请流程可以看看这里:trustasia.com/doc/how-t,如果你已经拥有了证书,请跳过这一步。

有与本站用的是apache2,apache2服务器需要用到for Apache.zip的文件以及自主生成的私钥.key文件(申请证书过程中创建CSR时生成),具体文件见下图:

将SSL证书上传至apache2的目录下,记录一下证书的绝对地址,方便等下使用。

上传好之后,我们需要为apache服务器添加ssl模块支持,命令如下:

sudo a2enmod ssl

然后进入apache2的配置文件目录/etc/apache2/sites-available,找到对应的配置

文件,默认为default-ssl.conf(根据实际环境),找到VirtualHost *:443的配置,并参考如下配置(修改或增加):

<VirtualHost *:443>

DocumentRoot 网站根目录

SSLEngine on

SSLCertificateFile /etc/ssl/certs/frostless.net.crt

SSLCertificateKeyFile /etc/ssl/private/frostless.net.key

SSLCertificateChainFile /etc/ssl/certs/root_bundle.crt

SSLProtocol  all -SSLv2 -SSLv3

SSLCipherSuite ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL

SSLHonorCipherOrder on

</VirtualHost>

添加上述配置,保存后,给配置文件建立一个软连接,命令如下:

sudo a2ensite default-ssl

进入apache2的配置文件目录,找到ports.conf,添加Listen 443,如果默认已添加,忽略此步骤。

检测SSL配置

上述的配置完成后,可先用命令检测配置是否正确,若不正确,请不要重启apache2!检测命令如下:

/usr/sbin/apache2ctl -t

输入命令后,若提示Syntax OK,则表示配置正常(如果提示错误,请根据具体错误修改,直到提示Syntax OK),可以重启apache2,命令如下:

sudo service apache2 restart

打开浏览器,输入https://你的域名,如浏览器地址栏显示加密小锁,则表示证书配置成功。若显示无法连接,请确保防火墙或安全组等策略有放行443端口(SSL配置端口)。

http重定向到https(可选)

若可以成功访问https,那么我们再执行最后一步,强制用户即使输入http,也跳转到https上来,操作很简单,添加下列三行代码即可。修改默认网站配置 /etc/apache2/site-avaliable/000-default.conf

<VirtualHost *:80>
...
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
...
</VirtualHost>

保存后执行以下命令,

sudo a2enmod rewrite

然后再次重启一下apache服务器:

sudo service apache2 restart

好了,大功告成,大家加油!

欢迎关注我的博客,原文地址:

https://www.frostless.net/index.php/2020/10/29/apache2-ssl/​www.frostless.net

apache2.2.4如何安装SSL证书与问题解答

发布时间:2019-09-09 20:13:02 来源:青锋建站 作者:青锋建站
  于由于谷歌对网站排序上使用https这一参数,也随着外贸行业不断发展,许多网站受到安全的威胁,于是网站安装SSL证书成了当今的潮流,尤其是在电商交易行业。但是大多数企业站点并无具大的数据价值,多是一些展示功能,因此对于内容、新闻、官网类的网站受到攻击多是由于网站布署与维护原因,不安装SSL证书问题不大。以下是青锋建站给大家分享的apache2.2.4如何安装SSL证书与问题解答、apache2.2.4如何安装SSL证书步骤。

1、开启apache ssl模块

将#LoadModule ssl_module modules/mod_ssl.so前面的“#”去掉,来开启apache的ssl模块;
注意
由于许多apache版本是不包括ssl模块的,如果环境下不包括mod_ssl.so,则需要下载包括mod_ssl.so版本的apache,并将该模块放在模块目录下面。
windows下apache版本下载地址为:https://archive.apache.org/dist/httpd/binaries/win32/;
apache安装配置:http://www.sjzphp.com/webdis/apache_844.html
apache中linux版本-https://archive.apache.org/dist/httpd/
另外:有时php需要开发openssl模块:
将#extension=php_openssl.dll前面的“#”去掉,如果当前版本没有该模块,需要下载。

2、下载证书

下载证书并将证书放在服务器上,这里我们以apache所在目录为例。将证书放在如下目录:apache/cert/xxx/。目录形式不唯一,可以自行定义。必须与下面apache虚拟主机中的证书路径一致即可。

3、给apache虚拟主机安装SSL证书

如果购买的SSL证书是单域名版本的,只需要给相应的虚拟主机安装即可以,需要有服务器操作权限,如果购买的是多域名版本,可以给服务器上所有的网站安装SSL证书。apache虚拟主机安装SSL证书配置如下:
<VirtualHost *:443>
ServerAdmin admin@myhost.com
#根据需要配置为实际的域名
ServerName www.xxx.com
ServerAlias xxx.com
Header set Access-Control-Allow-Origin *
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLCertificateFile cert/xxx/2787247_www.xxx.com_public.crt
SSLCertificateKeyFile cert/xxx/2787247_www.xxx.com.key
SSLCACertificateFile  cert/xxx/2787247_www.xxx.com_chain.crt
#以上三条规划中的证书名称需要替换为实际中的证书名称
DocumentRoot “D:DedeAMPZWebRootqqcms”
php_admin_value open_basedir “D:DedeAMPZWebRootqqcms”
</VirtualHost>
##VhostEnd

4、给服务器上所有的网站安装SSL证书

打开Apache/conf/extra/httpd-ssl.conf,在httpd-ssl.conf文件中找到以下参数并进行配置。

SSLProtocol all -SSLv2 -SSLv3  # 添加SSL协议支持协议,去掉不安全的协议。
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM   # 使用此加密套件。
SSLHonorCipherOrder on
SSLCertificateFile cert/domain name_public.crt   # 将domain name_public.crt替换成您证书文件名。
SSLCertificateKeyFile cert/domain name.key   # 将domain name.key替换成您证书的秘钥文件名。
SSLCertificateChainFile cert/domain name_chain.crt  # 将domain name_chain.crt替换成您证书的秘钥文件名;

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]

5、一些厂商SSL证书安装指南汇总

A-阿里云SSL证书安装指南:https://help.aliyun.com/document_detail/98727.html
B-腾讯云SSL证书安装:https://cloud.tencent.com/product/ssl
以上就是青锋建站给大家分享的apache2.2.4如何安装SSL证书与问题解答、apache2.2.4如何安装SSL证书步骤。青锋建站,提供专业的高品质网站制作服务,包括网站建设,SEO,网络营销,PHP开发,网站建设知名品牌,全国接单,为企业构建强有力的营销平台。

分享到: