腾讯云 SSL 证书 搭建免费的 https...

最近一直想给自己的博客网站搭建个https。网上找了很多资料,稍稍在这里汇总一下。
搭建https比较简单,我这里是以腾讯云免费的ssl证书为例。
申请地址:腾讯云SSL证书,自己填写资料,申请成功的前提是域名需要已经备案。基本的操作就不多了说,最后点击下载证书即可,成功之后有个域名.zip包,解压出来有三个目录:
file
我这里是以apache配置https为例
file
有三个配置文件,上传至服务器,路径为 /usr/local/apache/conf/ssl 。
修改httpd.conf文件,将下边一行的注释去掉。
LoadModule ssl_module modules/mod_ssl.so
编辑主机文件的vhosts.conf,添加443端口的主机,在VirtualHost代码块里添加SSL的配置,路径是上次的三个文件的路径

    Listen 443
<VirtualHost *:80>
        DocumentRoot "/data/blog/public"
        ServerName 你的域名
        ServerAlias cocoyo.xin
<Directory "/data/blog/public">
        SetOutputFilter DEFLATE
        Options FollowSymLinks ExecCGI
        Require all granted
        AllowOverride All
        Order allow,deny
        Allow from all
        DirectoryIndex index.html index.php
</Directory>
</VirtualHost>
<VirtualHost *:443>
        DocumentRoot "/data/blog/public"
        ServerName 你的域名
        ServerAlias cocoyo.xin
        SSLEngine on
        SSLCertificateFile "/usr/local/apache/conf/2_你的域名.crt"
        SSLCertificateKeyFile "/usr/local/apache/conf/3_你的域名.key"
        SSLCertificateChainFile "/usr/local/apache/conf/1_root_bundle.crt"
        SSLProtocol  all -SSLv2 -SSLv3
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
<Directory "/data/blog/public">
        SetOutputFilter DEFLATE
        Options FollowSymLinks ExecCGI
        Require all granted
        AllowOverride All
        Order allow,deny
        Allow from all
        DirectoryIndex index.html index.php
</Directory>
    </VirtualHost> 

重启apache,成功重启访问失败,检查防火墙是否放行443端口。或者在上边的配置文件中的头部加上Listen 443。
将80端口重定向到443端口,两个方法:
第一种方法:在网站根目录.htaccess文件

<IfModule mod_rewrite.c>
Options +FollowSymlinks
    RewriteEngine On
    //将不带www的域名重定向到www域名
    RewriteCond %{HTTP_HOST} ^wugenglong.com$ [NC]
    RewriteRule ^(.*)?$ https://www.%{SERVER_NAME}$1 [L,R]
    //将非443端口重定向到443
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)?$ https://%{SERVER_NAME}$1 [L,R]

第二种方法:在vhosts.conf配置文件里的80端口VirtualHost代码块里添加下列代码:

RewriteEngine On
//将不带www的域名重定向到www域名
RewriteCond %{HTTP_HOST} ^wugenglong.com$ [NC]
RewriteRule ^(.*)?$ https://www.%{SERVER_NAME}$1 [L,R]
//将非443端口重定向到443
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}$1 [L,R]

好了!搭建免费的https到此处就结束啦!有什么不足的地方欢迎补充。
部分代码来自https://www.wugenglong.com/index.php/serve...

a happy geek!

如此.
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 8

1年有效期,到期后估计要购买。

7年前 评论

@00x00 这个我也不是很清楚,应该是需要重新更换证书,一年换一次,也是免费的。

7年前 评论

楼主你好!
按照你的教程,进行到【重启apache】这步时遇到问题了,能帮我看下吗?
重启失败,返回的提示是
'restart apache... Syntax error on line 47 of /usr/local/apache/conf/extra/httpd-vhosts.conf:
SSLCertificateFile: file '/usr/local/apache/conf/2_我的域名.crt' does not exist or is empty
failed'
这个原因是什么呢?

先讲下我情况吧。我是个小白,0基础。

我的vps是搬瓦工买的,系统是Centos 6 x86 。

我在网上一键安装了lnmp1.4,然后装了wordpress,自己搭建了个博客。

今天心血来潮,准备看着教程把博客的ssl证书安装了。

于是先到腾讯云申请了个免费的ssl证书。
发现安装的话需要区分是apache还是ngxinx,我便用php探针,发现我的web服务器是apache。

然后就按照腾讯云官方的教程制作,失败了,不知道原因是什么。但是返回的报错也是和上面一样的。
再然后看到你的教程,也试了试,遇到了上述问题。

麻烦大神可以帮我看下,问题所在,我连着看了8个小时的教程,,头都炸了,本来想放弃了,但是不甘心啊。

大神帮我看看吧~

感激

6年前 评论

@潘迪凹 错误很明显,你是否正确把你的证书放在你指定的文件目录下

6年前 评论

@happygeek 我看见你的教程,配置文件是放在/usr/local/apache/conf/ssl ,而代码里面却是这个路径
SSLCertificateFile "/usr/local/apache/conf/2_你的域名.crt"

所以我就自以为,只要两者路径一样就行,,都设定为了/usr/local/apache/conf/,没有多建一个文件夹ssl。

那我这次再多建一个文件夹ssl,然后代码路径应该也多出一个ssl吧?

6年前 评论

@happygeek 试了 下,文件位置都是对的。

你教程中的主机文件是vhosts.conf,而我用的是httpd-vhosts.conf 是否是这里出了问题?

6年前 评论

@潘迪凹 你可以截个图吗?我不是很明确你是怎么配置的。

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!