腾讯云 SSL 证书 搭建免费的 https...
最近一直想给自己的博客网站搭建个https。网上找了很多资料,稍稍在这里汇总一下。
搭建https比较简单,我这里是以腾讯云免费的ssl证书为例。
申请地址:腾讯云SSL证书,自己填写资料,申请成功的前提是域名需要已经备案。基本的操作就不多了说,最后点击下载证书即可,成功之后有个域名.zip包,解压出来有三个目录:
我这里是以apache配置https为例
有三个配置文件,上传至服务器,路径为 /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...
1年有效期,到期后估计要购买。
@00x00 这个我也不是很清楚,应该是需要重新更换证书,一年换一次,也是免费的。
楼主你好!
按照你的教程,进行到【重启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个小时的教程,,头都炸了,本来想放弃了,但是不甘心啊。
大神帮我看看吧~
感激
@潘迪凹 错误很明显,你是否正确把你的证书放在你指定的文件目录下
@happygeek 我看见你的教程,配置文件是放在/usr/local/apache/conf/ssl ,而代码里面却是这个路径
SSLCertificateFile "/usr/local/apache/conf/2_你的域名.crt"
所以我就自以为,只要两者路径一样就行,,都设定为了/usr/local/apache/conf/,没有多建一个文件夹ssl。
那我这次再多建一个文件夹ssl,然后代码路径应该也多出一个ssl吧?
@happygeek 试了 下,文件位置都是对的。
你教程中的主机文件是vhosts.conf,而我用的是httpd-vhosts.conf 是否是这里出了问题?
@潘迪凹 你可以截个图吗?我不是很明确你是怎么配置的。
这里有一个简单介绍,腾讯云 Ubuntu 16.04 配置 SSL 证书