先决条件
在开始之前,以下是本教程需要的网络工具:
- 谷歌的Chrome浏览器
- Apache安装在您的VPS(云服务器)
- 您拥有的域名
- 访问该域的电子邮件地址,可以:
- postmaster@duable.co
- hostmaster@duable.co
- webmaster@duable.co
StartSSL.com提供完全免费的验证 (用户将不必看那些可怕的红色屏幕说:“这个网站是不信任”了),您可以在网站上使用SSL证书。 这是一个很大的,因为大多数公司收取$ 50- $ 60类似的服务。 免费版本有点棘手的设置,但它是非常值得的。
上手,浏览到StartSSL.com并使用左侧的工具栏中,导航到startssl如果产品再到startssl如果™免费。 选择的链接控制面板从页面的顶部。
确保您使用的是Google Chrome浏览器
- 选择快速注册。选项
- 输入您的个人信息,然后单击继续。
- 您很快就会收到一封内含验证码的电子邮件。 将该电子邮件复制并粘贴到StartSSL页面上的表单中。
- 他们将审核您的证书请求,然后向您发送包含新信息的电子邮件。 这个过程可能需要长达6个小时,所以耐心。
- 电子邮件到达后,使用提供的链接和新的身份验证代码(在电子邮件底部)继续下一步。
- 他们会要求您生成一个私钥,您将获得“高”或“中”等级的选择。 继续选择“高”。
- 密钥准备就绪后,单击安装。
- Chrome会显示弹出式窗口,表示证书已成功安装到Chrome。
这意味着您的浏览器现在使用新证书进行身份验证,您可以使用新证书登录StartSSL身份验证区域。 现在,我们需要获得一个格式正确的证书,以便在您的VPS上使用。 点击上的控制面板再次链接,并选择身份验证选项。 Chrome会显示一个弹出窗口,询问您是否要进行身份验证,并显示刚刚安装的证书。 继续使用该证书进行身份验证,以进入控制面板。
您需要验证您的域名,以证明您拥有您正在设置证书的域名。 点击切换到验证向导在控制面板和类型设置为域名验证。 系统会提示您选择您网域中的电子邮件,例如postmaster@yourdomain.com。
检查电子邮件收件箱中您选择的电子邮件地址。 您将在该地址收到另一封验证电子邮件,与之前一样,将验证码复制并粘贴到StartSSL网站。
接下来,转到“证书向导”选项卡,选择创建Web服务器SSL / TLS证书。
点击继续,然后输入一个安全的密码,保留其他设置。
您将看到一个包含您的私钥的文本框。 将内容复制并粘贴到文本编辑器中,并将数据保存到名为ssl.key的文件中。
当您单击继续时,系统将询问您要为以下哪个域创建证书:
选择您的域并继续下一步。
将询问您要为其创建证书的子域。 在大多数情况下,您希望在此处选择www,但如果您要使用具有SSL的其他子域名,请在此输入:
StartSSL将在文本框中为您提供新证书,与私钥一样:
再次,复制并粘贴到文本编辑器,这一次将其保存为ssl.crt。
您还需要StartCom Root CA和StartSSL的第1类中间服务器CA为了验证您的网站,所以最后一步,转到工具箱窗格并选择StartCom CA证书:
在此屏幕上,右键单击并另存为两个文件:
- StartCom根CA(PEM编码)(保存到ca.pem)
- 类1中间服务器CA(保存到sub.class1.server.ca.pem)
出于安全原因,StartSSL加密您的私钥(ssl.key文件),但是您的Web服务器需要其未加密的版本来处理您的网站的加密。 要解密它,将其复制到您的服务器上,并使用以下命令将其解密为private.key文件:
openssl rsa -in ssl.key -out private.key
OpenSSL将要求您输入密码,因此请输入您在StartSSL网站上输入的密码。
此时你应该有五个文件。 如果您缺少任何内容,请仔细检查之前的步骤,然后重新下载:
- ca.pem - StartSSL的根证书
- private.key - 您的私钥的未加密版本(非常小心,没有其他人可以访问此文件!)
- sub.class1.server.ca.pem - StartSSL的中间证书
- ssl.key - 您的私钥的加密版本(不需要复制到服务器)
- ssl.crt - 您的新证书
您可以丢弃ssl.key文件。 如果您尚未将其他人复制到您的服务器上,请立即上传它们:
scp {ca.pem,private.key,sub.class1.server.ca.pem,ssl.crt} YOURSERVER:~
在Apache中激活证书
有证书不是任何好,如果你不能实际使用它。 本节说明如何配置Apache以使用您的新SSL证书。 这些说明适用于在最新版本的Ubuntu VPS上运行的Apache。 对于其他基于Linux的发行版或Web服务器,您必须相应地进行调整。
首先,创建我们将存储密钥的文件夹。 启用Apache的SSL模块,并重新启动Apache。
sudo a2enmod ssl sudo service apache2 restart sudo mkdir -p /etc/apache2/ssl
将您在上一节中设置的文件复制到VPS上的/ etc / apache2 / ssl文件夹中。
sudo mkdir -p /etc/apache2/ssl cp ~/{ca.pem,private.key,sub.class1.server.ca.pem,ssl.crt} /etc/apache2/ssl
执行:
ls /etc/apache2/ssl
它应该返回:
ca.pem ssl.crt private.key sub.class1.server.ca.pem
现在,打开您的apache2配置文件。 除非您已经修改了默认配置,输入:
nano /etc/apache2/sites-enabled/000-default
它应该看起来像这样:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
复制上面的整个脚本(从<VirtualHost *:80>到</ VirtualHost>),将其粘贴到现有脚本下面,然后将顶行从:
<VirtualHost *:80>
至
<VirtualHost *:443>
并在<VirtualHost *:443>行后面添加以下行:
SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM SSLCertificateFile /etc/apache2/ssl/ssl.crt SSLCertificateKeyFile /etc/apache2/ssl/private.key SSLCertificateChainFile /etc/apache2/ssl/sub.class1.server.ca.pem
最终结果应如下所示:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> <VirtualHost *:443> SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM SSLCertificateFile /etc/apache2/ssl/ssl.crt SSLCertificateKeyFile /etc/apache2/ssl/private.key SSLCertificateChainFile /etc/apache2/ssl/sub.class1.server.ca.pem ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
保存文件并使用以下命令重新启动Apache:
sudo service apache2 restart
您可以检查Apache的日志文件,以查看是否有此命令的任何显示停止错误:
cat /var/log/apache2/error.log
如果一切正常,尝试使用HTTPS URL访问你的网站在你的网页浏览器(例如HTTPS://www.YOURSITE.com)。 当您的网站加载时,您应该在网址旁边看到一个绿色的挂锁图标。 点击它,你应该看到以下内容。 连接选项卡应显示该站点的身份已由StartCom验证。
恭喜! 你都设置了!
参考链接:
这里有一些其他职位我咨询时,把这一起。 如果你遇到任何问题,他们可能是一个灵感来源如何解决他们: