Ubuntu14.04 - Apache配置 Https

前端之家收集整理的这篇文章主要介绍了Ubuntu14.04 - Apache配置 Https前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在写服务端的时候,有时候要求后台强制提供 Https服务,不然请求失败,并且由于 Https相对于来说更为安全,所以准备配置一下 Https在 Apache上。

安装 apache

如果没安装运行下面命令:

sudo apt-get install apache2

然后请配置好自己想要走的 Https 的二级域名!我默认你已经配置好了,不会配置的请自行看我其他博客里有写。或者百度

下载 OpenSSL

一般情况Ubuntu已经安装了 OpenSSL,如果没有安装就安装一下:

sudo apt-get install openssl

开启 SSL模块

sudo a2enmod ssl

如果发现 a2enmod这个命令不存在,就自己手动运行下面命令:

sudo ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled
sudo ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled

这样就可以了。

生成证书

以下三种方式,自选一种!不要三种都尝试。

1. 自签名证书

这种方式就是自己生成一个证书,然后可以用 https的方式访问,但是一般浏览器会提示这种 https并不安全,但是免费:

可以通过 openssl命令来生成

sudo openssl req -x509 -newkey rsa:1024 -keyout apache.pem -out apache.pem -nodes -days 999

然后会出现如下的内容

Generating a 1024 bit RSA private key
......++++++
..........................................++++++
writing new private key to 'apache.pem'
-----
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]:CH State or Province Name (full name) [Some-State]:ShannXi Locality Name (eg,city) []:Xian Organization Name (eg,company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg,section) []: Common Name (e.g. server FQDN or YOUR name) []:judianer Email Address []:

注意:在要求输入Common Name (eg,YOUR name) 时,输入你的主机名(授权主机)

把能填写的填写上就可以了,然后会生成一个 apache.pem文件。然后这个文件放到

/etc/apache/ssl/apache.pem //路径不存在的话手动创建

2. CA机构签署证书

这个就是更正式一点,浏览器不会报错出现不安全的提示,流程如下:

其中前两步是我们操作,最后一步就是找个便宜的(有钱的就找付费的)一个机构,把 CSR 文件给它们就好了。

运行下面的命令:

//需要对私钥加密的 加上-des3
openssl genrsa -des3 1024 -out server.key
//不需要加密的话去掉-des3,我没选择加密

然后出现下面的内容

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,CDE68DC5EE597A0E

tQIXgoZ7Kq+40Qyrk1Gi9KXYBctPTcQopluLYni7d6VWIK3x3AgUHU/d/ofJA5uz
1aQkeCnlG7KCuuSA3/jS+NsGecuETC2IH1f/IYB51Z8uZrHzNhnjDy7RpsbTAAhj
zRz2QEXcZ384Fmvbs2OHKy973avS5V17BPHfpVNR3dJf3UtvaebYLSF9/DiSbUAB
Svr9io6aeAm/b1NPZpnq31XZiP9AocxkNvibLDt6efOzn3AfnPAoKefnBmNZZBBs
iO/uu/qo6vAKM4V7gCa2mSq2OhsQ4iMmtt8ez2AupiRfzYVZU0KlMUDLSWlin1Aq
5/L4RbIN2G/KrciarSXMt6bCf2UCDAld8BXLQQWT016sq1bKlivGObgx3gfoI2KZ
q9WYs94z3cJ2OxvnsjSa3l1AoP4ZUkmKeP5pmCgq+sFWFpqxpqurKikRmCudvbGu
M2fid***********3N4c5k6rS6c/n2IZjIt9En0GPaR1c7J5cJiAnTqc7lE
XNb7vK4qElc7rMGBc/h18HZAqQsgwN1g2broOUIDfbQs+qe6lDL/++VniLIMWZpY
DZAIAD7epEGaDPL0o4OtojaC52AzK/e8nGmXp9At5C1fI9nIvz5tgONz+FCXy6oh
au3kBU6Fgg95uG7YYhS/UvYblbs8q9kDHDC8MS5F3zUKTUQWAjGMgc4jyYvKBKTj
ttx56094/U3oRn8ymtG9kNrRLo1EDM7oPrfFqSdwig7w1hs5VP6OVg==
-----END RSA PRIVATE KEY-----

然后生成CSR 文件

openssl req -new -key server.key –out server.csr

这样就好了,把 csr文件发给 CA机构,这个机构就要自己去找了。

3. 云服务帮忙弄

其实就是上面的流程,不过我使用腾讯云的时候,他们可以帮忙申请,还是免费的。

申请流程:

https://www.qcloud.com/document/product/214/6989

证书安装指导:
//他的这个安装指导是老版本的,所以可以不参考。

https://www.qcloud.com/document/product/400/4143

证书安装

CA签名证书

在拿到CA发布的证书之后,做下面的配置:

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

sudo vim /etc/apache2/sites-available/default-ssl.conf

如果是自己签名的,请看后面,不要看这里。

文件最后面加上

<VirtualHost _default_:443>
        ServerAdmin chenfushan1992@gmail.com
        ServerName alps.yourserver.cc
        //你自己的二级域名 要走 https的
        DocumentRoot /home/alps/Sites

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine on

        //下面是收到的三个证书
        SSLCertificateFile /etc/apache2/ssl/Apache/2_alps. yourserver.cc.crt
        SSLCertificateKeyFile /etc/apache2/ssl/Apache/3_alps.yourserver.cc.key
        SSLCertificateChainFile /etc/apache2/ssl/Apache/1_root_bundle.crt

        <FilesMatch "\.(cgi|shtml|phtml|PHP)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>
        BrowserMatch "MSIE [2-6]" \
                nokeepalive ssl-unclean-shutdown \
                downgrade-1.0 force-response-1.0
        # MSIE 7 and newer should be able to use keepalive
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

    </VirtualHost>
</IfModule>

这样就配置好了。重启 apache.

自签名的证书

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

sudo vim /etc/apache2/sites-available/default-ssl.conf

然后配置 default-ssl.conf

NameVirtualHost *:443

<VirtualHost *:443>
    ServerAdmin email@example.com
    DocumentRoot /var/www/
    ServerName alps.yourserver.com
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.pem
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /var/www/>
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    Options FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</VirtualHost>

重启apache.

猜你在找的Ubuntu相关文章