HTTPS证书安装 - SSL certificate from Godaddy 安装到Ubuntu上的Apache
目标
启用https://DEMO.com/
环境
DEMO.com
Ubuntu 14.04
Apache 2
Godaddy SSL
要求和补充
DEMO.com非本地测试网站,否则在获取Godaddy证书时不能通过验证。
现在买SSL证书好像看不到送的独立IP了,不知道是不是要再等段时间。
步骤
======== 购买证书 ===========
0. 【环境】LAMP环境搭建,http://DEMO.com/ 可访问
1. 【模块】给Apache安装mod_ssl.so,参照http://blog.csdn.net/newjueqi/article/details/9789659
2. 【购买】Godaddy SSL证书购买, 注意购买的项目是“Protect One Website”单网站:
https://hk.godaddy.com/en/web-security/ssl-certificate
3. 【管理】进入Godaddy帐号管理:
https://mya.godaddy.com/
4. 【验证】找到最下面的分类“SSL Certificates”,展开,看到“NEW CERTIFICATE“,点击右边的"Manage"
5. 【验证】提供网站的CSR给Godaddy,再点击Next,等待下一步邮件验证,具体CSR获取方法是:
1) 登入自己的VPS的ubuntu,普通用户即可:
cd /tmp/
mkdir demo.com
cd demo.com
openssl req -new -newkey rsa:2048 -nodes -keyout demo.key -out demo.csr
# 这里会问一堆问题,包括公司名称等,注意:
# (1) Common name需要填写域名,例如DEMO.com
# (2) Email要填写你能登录的邮箱
2) 现在有两个新的文件,demo.key和demo.csr,打开demo.csr复制所有的内容
6. 【验证】现在到了邮箱验证时间,需要进入邮箱按步骤操作,有时会要求你上传点东西到网站根目录下来验证控制权。期间,当前页面会不停地自动刷新,显示验证进度。
7. 【下载证书】查看这个证书产品的详情页,可以看到下载的按钮,选择自己的系统和服务器类型,开始下载,得到zip压缩包,里面有两个文件:gd_bundle-g2-g1.crt和另一个crt文件,我这个是叫"5d8712B5b9c676ad.crt"
======== 安装证书 ===========
1. 【准备】三个文件
5d8712B5b9c676ad.crt => 从Godaddy的SSL详情页下载来的zip文件中解压出来,名字会变
demo.key => 自己在Ubuntu里计算CSR文件时,同时生成的那个Key文件(上面的步骤5)
gd_bundle-g2-g1.crt => 从Godaddy的SSL详情页下载来的zip文件中解压出来
(这些关系是试验出来的,Godaddy的帮助文档坑死Ubuntu用户了感觉)
2. 【存放】
mkdir /var/www/certs/
cp -p gd_bundle-g2-g1.crt demo.key 5d8712B5b9c676ad.crt /var/www/certs/
3. 【安装】修改虚拟域名DEMO.com对应的Apache配置文件,我的是/etc/apache2/sites-available/demo.conf,标签里面添加下面代码的最后面那几行,带SSL的:
(说明:第一段是让http跳到https,第二段是https,重点在最下面)
<VirtualHost *:80>
ServerName DEMO.com
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
ServerName DEMO.com
AssignUserId somebody somebody
DocumentRoot /var/www/DEMO
ErrorLog /var/log/apache2/DEMO.log
<Directory /var/www/DEMO>
Options -Indexes +IncludesNOEXEC +FollowSymlinks
allow from all
AllowOverride All
AddType application/x-httpd-php5 .php5
AddType application/x-httpd-php5 .php
</Directory>
RewriteEngine on
RemoveHandler .php
RemoveHandler .php5
SSLEngine on
SSLCertificateFile /var/www/certs/5d8712B5b9c676ad.crt
SSLCertificateKeyFile /var/www/certs/demo.key
SSLCertificateChainFile /var/www/certs/gd_bundle-g2-g1.crt
</VirtualHost>
4. 【完成】
sudo apache2ctl restart
错误处理
1.无法重启的话,看看错误提示,里面有日志文件路径,tail一下看看什么错误
Good luck~