Ubuntu下Nginx免费开启HTTPS访问

最近很多的网站(淘宝、百度、知乎等)都开启了全站HTTPS访问,HTTPS的好处就不多说了,大家可以自己Google一下。为了赶潮流,我也想为自己的网站开启全站HTTPS。

一、申请SSL证书

其实理论上,我们是可以自己生成证书的,但是自己生成的证书不会被认可,在网站被访问的时候会有相应的提示。所以我们必须去申请SSL证书。一般情况下,SSL证书是需要购买的,但是也有免费提供的,比如沃通WoSign就提供免费的SSL证书。由于网上有详细的申请指南,我这里就不多说了,大家直接去申请就行了。
申请地址:https://buy.wosign.com/free/
申请指南:https://freessl.wosign.com/1405.html

二、开启Nginx对SSL的支持

我在配置过程中,发现总是失败,后来查了一下资料,说Nginx必须开启–with-http_ssl_module才可以使用SSL。但是通过apt-get安装的Nginx默认是没有开启–with-http_ssl_module的,于是乎查了一堆网上的资料,发现都说需要重新编译Nginx。我懒得写一堆编译参数,后来发现,apt-get仓库有一个nginx-full,网上说这个Nginx会开启所有的功能。通过apt-get安装,发现果然开启了–with-http_ssl_module。

sudo apt-get install nginx-full

三、配置Nginx

在Nginx的配置文件server节点中加入如下代码:

server {
    listen 443;
    ssl on;
    ssl_certificate /usr/local/nginx/conf/server.crt;
    ssl_certificate_key /usr/local/nginx/conf/server_key.key;
}

注意,请替换配置文件中的两个文件路径。
重启Nginx之后,网站成功开启HTTPS访问。

四、优化

开启HTTPS访问之后,有时候我们希望HTTP访问的链接都跳转到HTTPS。这就需要在Nginx配置文件中加入如下代码:

server {
    listen 80;
    server_name localhost;
    rewrite ^(.*)$ https://$host$1 permanent;
    location / {
    root html;
    index index.html index.htm;
}

您可能还喜欢...