LAMP下HTTPS配置「建议收藏」

2022-09-06 11:05:25 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

LAMP下HTTPS配置

LAMP下配置HTTPS非常简单,本文主要介绍ubuntu下apache配置https的具体步骤和流程,证书为服务器生成的本地证书,希望对大家有所帮助。

  • 证书:本地生成
  • apache版本:Apache/2.4.7 (Ubuntu)
  • 系统:Ubuntu14.04

一、安装Apache

$sudo apt-get install apache2

使用此方式安装的APACHE,配置比较分散,一般如下:

  • 默认站点在 /var/www/
  • 配置文件在 /etc/apache2/
  • 日志在 /var/log/apache/
  • 启动脚本是 /usr/bin/apache2ctl 或者 /etc/init.d/apache2

二、安装openssl

Ubuntu默认已经安装了OPENSSL,如果没安装,

$sudo apt-get install openssl

三、开启SSL模块

$sudo a2enmod ssl

这条命令相当于 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

如果没有a2enmod指令,也可直接在apache2.conf中设置SSL模块加载:

LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so

运行后需要重启Apache服务。

四、创建证书

x509证书一般会用到三类文件,key,csr,crt。

Key 是私用密钥,通常是rsa算法。

Csr 是证书请求文件,用于申请证书。在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥。

crt是CA认证后的证书文,(windows下面的,其实是crt),签署人用自己的key给你签署的凭证。

1.key的生成

openssl genrsa -des3 -out server.key 2048

这样是生成rsa私钥,des3算法,openssl格式,2048位强度。server.key是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。可以通过以下方法生成没有密码的key:

openssl rsa -in server.key -out server.key

server.key就是没有密码的版本了。

2. 生成CA的crt

openssl req -new -x509 -key server.key -out ca.crt -days 3650

生成的ca.crt文件是用来签署下面的server.csr文件。

3. csr的生成方法

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

需要依次输入国家,地区,组织,email。最重要的是有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书。

4. crt生成方法

CSR文件必须有CA的签名才可形成证书,可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢。

openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

输入key的密钥后,完成证书生成。-CA选项指明用于被签名的csr证书,-CAkey选项指明用于签名的密钥,-CAserial指明序列号文件,而-CAcreateserial指明文件不存在时自动生成。

最后生成了私用密钥:server.key和自己认证的SSL证书:server.crt

证书合并:

cat server.key server.crt > server.pem

五、编辑HTTPS(SSL)配置

A、添加监听端口

编辑Apache端口配置(/etc/apache2/ports.conf),加入443端口(SSL缺省使用):

Listen 80

Listen 443

B、设置site-enabled

上文安装完后,会在/etc/apache2/sites-available/目录下生成一个缺省的default-ssl文件。缺省的网页目录仍然是/var/www/。我们可以创建一个链接到site-enabled目录。

ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/001-ssl

C、修改配置文件

确认HTTP监听端口改为80

#vi /etc/apache2/sites-enabled/000-default.conf

HTTPS监听端口缺省443:

把端口改为443,在<Virtualhost>下加入SSL认证配置,其它的根据需要自己定制 与普通配置无异:

01

NameVirtualHost *:443

02

03

<VirtualHost *:443>

04

SSLEngine on

05

SSLCertificateFile /etc/apache2/ssl/apache.pem

06

ServerAdmin webmaster@localhost

07

DocumentRoot /var/www

08

ServerName myServerName

09

<Directory />

10

Options FollowSymLinks

11

AllowOverride All

12

</Directory>

13

<Directory /var/www/>

14

Options FollowSymLinks MultiViews

15

AllowOverride None

16

Order allow,deny

17

allow from all

18

# This directive allows us to have apache2's default start page

19

# in /apache2-default/, but still have / go to the right place

20

#RedirectMatch ^/$ /apache2-default/

21

</Directory>

六、重启APACHE

# service httpd restart

或,

# /etc/init.d/apache2 restart

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134986.html原文链接:https://javaforall.cn

0 人点赞