腾讯云 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!#

如此.
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 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 个小时的教程,,头都炸了,本来想放弃了,但是不甘心啊。

大神帮我看看吧~

感激

7年前 评论

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

7年前 评论

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

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

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

7年前 评论

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

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

7年前 评论

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

7年前 评论