阿里云部署SSL证书步骤、http自动转为https、以及证书不安全解决办法(记录踩过的坑)
服务器部署SSL证书
当我们需要开发小程序,调用自己的后台接口的时候,我们就需要申请域名,同时服务器默认的http不被微信后台所接受,我们就必须要为自己的服务器部署SSL证书来使http转为https来方便服务器接口的调用。
SSL证书的购买
- SSL证书的购买可以到阿里云官网,搜索SSL证书,点击购买
- 作为开发的初级者,可以选择免费的DV证书,免费的证书可以一年申请20个证书,对自己的域名进行部署
如你的网站是:xxx.top,为他部署SSL证书就需要一张 如果你还需要为你的二级域名:api.xxx.top,那么他需要另外的单独一张SSL证书,才能成功访问到https - 成功购买SSL证书之后,进入后台管理界面,对点击证书申请
- 点击证书申请之后弹出框中输入自己的要配置SS;证书的域名
如果是让xxx.top和api.xxx.top都有SSL证书,那么需要配置两张SSL证书 - 填写之后提交了等待审核即可
- 审核成功之后点击下载,下载自己对应的服务器证书即可
服务中部署SSL证书(以Ubuntu系统部署apache2为例)
Apache配置SSL证书需要三个文件: xxx_public.crt【服务器证书】 xxx_chain.crt 【中间证书】 xxx.key 【私钥文件】
Nginx配置SSL证书俩个文件: xxx.pem 【服务器证书部分+中间证书部分】 xxx.key 【私钥文件】
- 安装SSL证书之前首先需要有openSSL环境,我们用命名行安装openssl,对应一下三个命令
$ sudo apt-get install openssl
$ sudo apt-get install libssl-dev
$ sudo apt-get install bless
- 安装好openSSL之后,我们在apache2目录下创建文件夹ssl
mkdir /etc/apache2/ssl
- 把三个文件放进ssl文件夹中
cp -r xxx_public.crt /etc/apache2/ssl
cp -r xxx_chain.crt /etc/apache2/ssl
cp -r xxx.key /etc/apache2/ssl
- 运行以下命令启用SSL模块
sudo a2enmod ssl
出现一下提醒则开启成功,SSL模块启用后可执行ls /etc/apache2/sites-available查看目录下生成的default-ssl.conf文件。 SSL证书自动监听的443端口。他是是网络浏览端口,主要用于HTTPS服务。 SSL模块启用后会自动放行443端口。 若443端口未自动放行,可执行
vi /etc/apache2/ports.conf
并添加Listen 443手动放行。
- 运行以下命令修改SSL配置文件default-ssl.conf。
vi /etc/apache2/sites-available/default-ssl.conf
- 在default-ssl.conf中进行修改配置
<IfModules mod_ssl.c>
<VirtualHost *:443>
ServerName
SSLCertificateFile /etc/apache2/ssl/xxx_public.crt
SSLCertificateKeyFile /etc/ssl/apache2/xxxx.key
SSLCertificateChainFile /etc/apache2/ssl/xxx_chain.crt
对应如图四个位置:
- 建立软连接
运行以下命令把default-ssl.conf映射至/etc/apache2/sites-enabled文件夹中建立软链接、实现二者之间的自动关联。
sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf
- 运行以下命令重新加载Apache 2配置文件。
sudo /etc/init.d/apache2 force-reload
- 运行以下命令重启Apache 2服务。
sudo /etc/init.d/apache2 restart
到此配置完成,在自己的网站中输入https看是否网站头部变成小锁子的形式,出现及配置成功
自动跳转到https
我们的服务器自动是http头,如果需要让网站进行自动转换为https,我们可以进行如下操作 运行以下的命令
vi /etc/apache2/sites-available/000-default.conf
我们在文件底部中添加以下代码:
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
到此网站就实现了自动转换为https
配置完成后访问网站显示证书不安全
我在配置完成之后,显示证书不安全 出现以下的提醒:
同时浏览器提示不安全,寻找各种办法,没有解决 返回配置文件查看在vi /etc/apache2/sites-available/default-ssl.conf 在配置文件的下方还有默认的证书配置,没有查看全 我们用 # 号把系统的默认证书配置路径注释掉即可 在前面的配置中,我们虽然配了路径,但是下面的默认路径把上面配置过的又覆盖掉执行了 以后查看需全部浏览 我们重新报错之后,重启apache服务器,证书配置成功。 正确的SSL证书如上格式
到此全部完成! By:毅少少
|