为树莓派Raspberry Pi的Apache配置SSL搭建HTTPS服务器

架设好私有云ownCloud后,下一个需要注意的就是安全问题。从客户端往服务器端传输信息,包括文档、相片等等,是有可能会在用户不在意的时候被截获的。翻译成人话就是:好比我们在大路上运输物资,路人是能看到我们运的是什么的。这时如果我们使用SSL建立隧道,再与自己的服务通讯,这样就会安全很多。人话:好比我们自己挖个隧道再运输物资。

至于具体什么是SSL,各位朋友可自行百度。开源的有OpenSSL,商业的就更多了。下没有免费的午餐,免费使用着OpenSSL的产品同时,为他们做广告是理所当然的,大家可参考一下这篇较为煽情的文章,还有另一篇知乎上关于锤子科技捐款给OpenSSL的讨论

好进入正题,首先确认一下系统是否已安装OpenSSL:

which openssl

如果有,系统会返回OpenSSL的路径,比如“/usr/bin/openssl”;如果没有,也不会报错,就直接跳到下一行。

没有的话,就输入命令安装吧:

sudo apt-get install openssl

安装好后先新建一个目录,用来存放证书文件:

sudo mkdir /etc/apache2/ssl

然后生成一个新的证书,假设限期为3年(1095天),证书和密钥存放在刚才新建的目录中

sudo openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -out /etc/apache2/ssl/server.crt -keyout /etc/apache2/ssl/server.key

这时openssl会以交互形式配置证书,终端会显示类似下面的提示:

Generating a 2048 bit RSA private key
............................................+++
.....................+++
writing new private key to '/etc/apache2/ssl/server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN #双字母国别码,按需要填写即可;
State or Province Name (full name) [Some-State]:Guangdong #州名或省名;
Locality Name (eg, city) []:Guangzhou #地区或城市名;
Organization Name (eg, company) [Internet Widgits Pty Ltd]:OrganizationName #组织/公司/机构名;
Organizational Unit Name (eg, section) []:DepartmentName #部门名;
Common Name (e.g. server FQDN or YOUR name) []:your.domain.name #域名,这个最好填写互联网上能访问的地址;
Email Address []:[email protected] #邮箱地址;

完成后,为Apache安装SSL模块:

sudo a2enmod ssl

然后要在Apache配置文件中做一点改动,在sites-enabled目录中放置一个名为000-default-ssl的传送门,指向sites-available目录下的default-ssl:

sudo ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/000-default-ssl

这时我们来编辑一下这个文件的内容:

sudo nano /etc/apache2/sites-enabled/000-default-ssl

找到下面两行,按上面的路径修改,如果行头有注释用的“#”号,删了:

SSLCertificateFile    /etc/apache2/ssl/server.crt
SSLCertificateKeyFile    /etc/apache2/ssl/server.key

编辑好后按下Ctrl+X退出nano,nano提示询问是否保存,再按Y确认保存。

这个时候我们重启Apache:

sudo service apache2 restart

用openssl为Apache配置SSL至此就完成了。现在ownCloud还不是以SSL方式连接的,要以管理员身份登入ownCloud,再设置强制用户以SSL连接。


已发布

分类

,

来自

标签:

评论

《 “为树莓派Raspberry Pi的Apache配置SSL搭建HTTPS服务器” 》 有 2 条评论

  1. hcg 的头像
    hcg

    这样做还不够,我用火狐获得了SSL_ERROR_RX_RECORD_TOO_LONG的错误提示
    可能还要在端口上设置一下

    1. 聪头 的头像
      聪头

      谢谢你的留言,不过我没遇到过这个问题?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注