王志祥 發表於 2020-3-20 12:54:00

树莓派/Debian Apache2 安装腾讯云 SSL 证书

<h2 id="前言">前言</h2>
<p>前文 树莓派/Debian Apache2 实现 HTTPS(SSL) 服务 提到,Apache2 实现 HTTPS(SSL) 服务有两种方法以及之间的区别,这里讲述如何通过 <strong>腾讯云</strong> 申请免费 SSL 证书实现 HTTPS(SSL) 服务。</p>
<p>注:本来打算使用阿里云的 SSL 证书服务,但是实在太慢了,改用腾讯云。</p>
<h3 id="准备">准备</h3>
<ul>
<li>
<p>已有域名且实名</p>
</li>
<li>
<p>腾讯云账号</p>
</li>
<li>
<p>LAMP 服务器环境</p>
<p>其他环境(Nginx等)的 SSL 证书同时下发,可以自己搜索配置方法。</p>
</li>
</ul>
<h2 id="申请免费-ssl-证书">申请免费 SSL 证书</h2>
<ul>
<li>
<p>在 <strong>“腾讯云 -&gt; SSL 证书 -&gt; 申请免费证书”</strong></p>
<p><img src="https://img2020.cnblogs.com/blog/1591904/202003/1591904-20200320124832246-104006091.png" alt="" loading="lazy"></p>
</li>
<li>
<p><strong>“确认证书类型 -&gt; TRUSTASIA 免费版 DVSSL 证书”</strong></p>
<p><img src="https://img2020.cnblogs.com/blog/1591904/202003/1591904-20200320124848360-630906348.png" alt="" loading="lazy"></p>
</li>
<li>
<p>填写免费证书申请表单</p>
<p><img src="https://img2020.cnblogs.com/blog/1591904/202003/1591904-20200320124854699-58047742.png" alt="" loading="lazy"></p>
</li>
<li>
<p>域名身份验证</p>
<p>由于我是阿里云的服务器,我选择“手动DNS验证”,腾讯云的应该可以选择“自动DNS验证”。</p>
<p><img src="https://img2020.cnblogs.com/blog/1591904/202003/1591904-20200320124901142-2062115126.png" alt="" loading="lazy"></p>
</li>
<li>
<p>“温馨提示 -&gt; 查看证书详情”</p>
<p><img src="https://img2020.cnblogs.com/blog/1591904/202003/1591904-20200320124912546-839879844.png" alt="" loading="lazy"></p>
<p><img src="https://img2020.cnblogs.com/blog/1591904/202003/1591904-20200320124918659-1002921182.png" alt="" loading="lazy"></p>
</li>
<li>
<p>将证书信息填写到域名解析:“添加记录”</p>
<p><img src="https://img2020.cnblogs.com/blog/1591904/202003/1591904-20200320124928625-116675998.png" alt="" loading="lazy"></p>
<p><img src="https://img2020.cnblogs.com/blog/1591904/202003/1591904-20200320124939455-149109977.png" alt="" loading="lazy"></p>
</li>
<li>
<p>回到腾讯云证书详情页,点击 <strong>“自动诊断”</strong> 然后 <strong>“验证”</strong></p>
</li>
<li>
<p>然后回邮件通知审核通过</p>
</li>
</ul>
<h2 id="下载免费-ssl-证书">下载免费 SSL 证书</h2>
<ul>
<li>
<p>点击颁发下载</p>
<p><img src="https://img2020.cnblogs.com/blog/1591904/202003/1591904-20200320125254127-341585885.png" alt="" loading="lazy"></p>
</li>
<li>
<p>将压缩包通过 WinSCP 等软件传输到服务器上</p>
<p><img src="https://img2020.cnblogs.com/blog/1591904/202003/1591904-20200320125258386-3135307.png" alt="" loading="lazy"></p>
</li>
<li>
<p>解压压缩包</p>
<p>腾讯云一般是zip格式的压缩包,输入解压命令即可:</p>
<pre><code class="language-shell">unzip xxxxx.zip
</code></pre>
</li>
</ul>
<h2 id="配置-apache">配置 Apache</h2>
<h3 id="编辑-ssl-配置文件-default-sslconf">编辑 SSL 配置文件 default-ssl.conf</h3>
<ul>
<li>
<p>编辑 SSL 配置文件 default-ssl.conf</p>
<pre><code>sudo vim /etc/apache2/sites-enabled/default-ssl.conf
</code></pre>
<p>如果忽略注释会显示:</p>
<pre><code>&lt;IfModule mod_ssl.c&gt;
      &lt;VirtualHost _default_:443&gt;
                ServerAdmin webmaster@localhost

                DocumentRoot /var/www/html

                SSLEngine on

                SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
                SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

                &lt;FilesMatch "\.(cgi|shtml|phtml|php)$"&gt;
                              SSLOptions +StdEnvVars
                &lt;/FilesMatch&gt;
                &lt;Directory /usr/lib/cgi-bin&gt;
                              SSLOptions +StdEnvVars
                &lt;/Directory&gt;
                &lt;/VirtualHost&gt;
&lt;/IfModule&gt;
</code></pre>
</li>
<li>
<p>添加 <code>ServerName &lt;域名&gt;</code> ,例:</p>
<pre><code class="language-shell">ServerAdmin webmaster@localhost
ServerName www.example.com# 你的域名
DocumentRoot /var/www/html
</code></pre>
<p>修改加载 SSL 证书位置到你解压的证书文件夹 ,例:</p>
<pre><code class="language-shell">SSLCertificateFile /etc/apache2/ownSSL/Apache/2_www.xxxxx.xxx.crt SSLCertificateKeyFile /etc/apache2/ownSSL/Apache/3_www.xxxxx.xxx.key
</code></pre>
<p>并添加</p>
<pre><code class="language-shell">SSLCertificateChainFile /etc/apache2/ownSSL/Apache/1_root_bundle.crt
</code></pre>
</li>
<li>
<p><code>:wq</code> 保存退出</p>
</li>
</ul>
<h3 id="加载-ssl-配置文件-default-sslconf">加载 SSL 配置文件 default-ssl.conf</h3>
<ul>
<li>
<p>以 root 权限启用SSL模块:</p>
<pre><code>sudo a2enmod ssl
</code></pre>
<p>如果执行成功显示:</p>
<pre><code>Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
systemctl restart apache2
</code></pre>
</li>
<li>
<p>它最后提醒你执行一条重启命令:</p>
<pre><code>sudo /etc/init.d/apache2 restart
</code></pre>
<p>这里要以 root 权限执行这条命令,否则报错。</p>
<p>注意:这里重启了 Apache2。</p>
</li>
<li>
<p>以 root 权限执行命令:</p>
<pre><code>Copysudo a2ensite default-ssl
</code></pre>
<p>正确返回结果:</p>
<pre><code>Copyyogile@debyogile:/etc/apache2# sudo a2ensite default-ssl
a2ensite default-sslEnabling site default-ssl.
To activate the new configuration, you need to run:
systemctl reload apache2
</code></pre>
<p>它提醒执行 <code>systemctl reload apache2</code> ,先不管它,进行下一步 <strong>启动 Apache2 服务</strong> 。</p>
</li>
<li>
<p>这时 <strong>启动 Apache2 服务</strong> :</p>
<pre><code>sudo /etc/init.d/apache2 start
</code></pre>
<p>启动成功显示:</p>
<pre><code>[ ok ] Starting apache2 (via systemctl): apache2.service.
</code></pre>
</li>
<li>
<p>启动 Apache2 服务成功后,加载 SSL 配置文件 default-ssl.conf</p>
<pre><code>sudo systemctl reload apache2
</code></pre>
<p>成功无显示。</p>
</li>
</ul>
<h3 id="重启-apache2-服务">重启 Apache2 服务</h3>
<ul>
<li>
<p>输入命令重启 Apache2 服务</p>
<pre><code>Copysudo /etc/init.d/apache2 restart
</code></pre>
<p>成功会显示:</p>
<pre><code>Copy[ ok ] Restarting apache2 (via systemctl): apache2.service.
</code></pre>
</li>
<li>
<p>配置成功。</p>
</li>
</ul>
<h2 id="网页登录测试">网页登录测试</h2>
<h3 id="在浏览器中输入-https域名--即可验证">在浏览器中输入 <code>https://&lt;域名&gt;</code>即可验证</h3>
<h2 id="http-强制重定向-https">HTTP 强制重定向 HTTPS</h2>
<ul>
<li>
<p>启动重定向</p>
<pre><code class="language-shell">sudo a2enmod rewrite
</code></pre>
<p>重启 Apache 服务</p>
<pre><code class="language-shell">sudo systemctl restart apache2
</code></pre>
</li>
<li>
<p>在 <code>/etc/apache2/sites-enabled/000-default.conf</code> 文件的 <strong><code>&lt;VirtualHost *:80&gt;&lt;/VirtualHost&gt;</code></strong> 中写入以下内容</p>
<pre><code class="language-shell">RewriteEngine on
RewriteCond   %{HTTPS} !=on
RewriteRule   ^(.*)https://%{SERVER_NAME}$1
</code></pre>
<p>重启 Apache 服务</p>
<pre><code class="language-shell">sudo systemctl restart apache2
</code></pre>
</li>
</ul><br><br>
来源:https://www.cnblogs.com/Yogile/p/12483991.html
頁: [1]
查看完整版本: 树莓派/Debian Apache2 安装腾讯云 SSL 证书