Ubuntu下HTTPS配置非常简单,对大部分用户而言,使用普通的自签名证书,只需按照步骤进行就可以了,无需了解密钥、证书的更多知识,更深的背景知识还有RSA算法、DES算法、X509规范、CA机构...等等,随便哪个方向都够学习一阵子的,所幸的是有了OpenSSL、OpenSSH等这些开源免费的软件,把很多底层的算法、规范都集成了,对上层应用而言,只需一二三操作即可,至多到官网去查查一些特殊的命令集。
一、安装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
四、创建证书
创建证书有两种:一种是自签名证书,另外一种是第三方CA机构签名证书。第一种随便使用,只是没有经过官方认可的机构认证而已,后一种则是正规的签名证书,有发证机构签名。其实很多所谓的大网站上使用的SSL证书,一样都是自签名的,主要是因为这个证书只做为在线验证使用,保证传输数据安全即可,不过使用这种证书,对常规浏览器和一些软件而言,一般均会弹出警告,让你确认这个签名证书的有效性。正规签名证书也不过只是多了一重保障而已,而且浏览器、软件等可以自己鉴别。
1、自签名证书
可使用apache内置的工具创建默认的自签名证书,通过-days参数指定有效期。
$sudo apache2-ssl-certificate
注意:上述命令可能在最新的apache中默认未安装,如果使用的是LAMP套件,一般会有这个模块。
不过我们还可以使用openssl命令(如果openssl是自编译安装的,没有注册该命令的话,可以使用绝对路径,比如类似/usr/local/openssl/openssl这样)创建:
1 |
$sudo openssl req -x509 -newkey rsa:1024 -keyout apache.pem -out apache.pem -nodes -days 999
|
3 |
Country Name (2 letter code) [AU]:CN |
4 |
State or Province Name (full name) [Some-State]:SH
|
5 |
Locality Name (eg, city) []:SH |
6 |
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ABC |
7 |
Organizational Unit Name (eg, section) []:RD |
8 |
Common Name (eg, YOUR name) []:myservername |
9 |
Email Address []:test@gmail.com |
注意:在要求输入Common Name (eg, YOUR name) 时,输入你的主机名(授权主机)。
创建完成后,当前目录下有个apache.pem文件,已经包含密钥和证书。可以把这个证书拷贝到/etc/apache2/下创建一个ssl目录然后拷贝到:
/etc/apache2/ssl/apache.pem
2、第三方CA机构签署证书
生成此证书,需要向第三方提交一个“生成证书请求文件(CSR)”,生成这个CSR需要两步:
A、运行如下命令生成私钥:
01 |
[root@localhost tmp]# openssl genrsa -des3 1024 -out server.key |
02 |
Generating RSA private key, 1024 bit long modulus
|
04 |
.......................................................++++++ |
07 |
Verifying - Enter pass phrase: |
08 |
-----BEGIN RSA PRIVATE KEY----- |
09 |
Proc-Type: 4,ENCRYPTED |
10 |
DEK-Info: DES-EDE3-CBC,32BDD10A4F977F7E |
12 |
A7FOhETnGpQnRcCoe1VtOtb8yq12xi6ljq/6wYB6MsGGdGjhftF1FxnSMd9Jx4o2 |
13 |
gjyUJNQs4zYkrtAaY6WYdOMiswymxiSYlKnX3l3uA6d6NqUpoyFxN7mgxqvbrdjq |
14 |
EaGSLo1d63B6THIq9mOGNm3l1xKtiUZVwHqVaHdb1F/RD6YshwE9yE5bAXjKJKat |
15 |
sTewoVPxj0bjEDBz49K4m+epUrh7UQ7ZyjMiefvCgg0OxFB3H8zdG0SHa1sV4fG4 |
16 |
9R+4PPoIIlLty4oyAYRwNVUWV47qGV4Jub11s50azVwtS9CV31HZQt48zkcUZ9WF |
17 |
2PBRQ3c4AMkewzfvjEUIF7bfHcBMl9ugu4fZfJTUxJbA4vHvoVczXhvcTaf6awHn |
18 |
4YpEX/T3xWE8ObyOjvVh5Utl39INOqzxVKGoZF1ogLFm60SokYx0r+Y19jrz2084 |
19 |
Nri4mHlYNymY+tviTFUUIHZ+8FRnkq0vnW68ejiSzG0Xyr2DDzc7pi6J58bqQ3yR |
20 |
eNJuK8KVjXxkRn1HXtGL/C6ZpJ4qs6VVzX291vPrr7luWrXGsAcRudLWRFZDSoUB |
21 |
lFw1CY9ol2TOX2mvt6JryhoH08x3s2prlIen10N35sVELB/nb1/8kkpztCbPHiA/ |
22 |
IH2A3g/WexCAatmCMuqlxW8Cwe98AUZduuZsAZeDoyXk7VxD7YhPKZmKPKOx3gZv |
23 |
2S1ZpzsNgZh9HhpXsRxjwbYnyICtcUY+dQZXk1w
|
24 |
PsvHIWQGeTUe5uILP7S/Bbi/KrFAkDguGJHge0mmHgL9gi8RvODtKQ== |
25 |
----- END RSA PRIVATE KEY-----
|
这里使用了-des3参数,将会需要输入一个密码对私钥进行加密,每次使用此私钥也需要输入此密码,如不需对私钥加密请不要使用-des3选项。输入两次密码后,将会生成server.key私钥文件。
B、生成请求文件
运行如下命令生成证书请求文件(CSR)
openssl req -new -key server.key –out server.csr
把这个CSR文件传给CA机构,然后他们会使用此请求文件生成证书。
五、编辑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
3 |
ServerAdmin webmaster@localhost |
HTTPS监听端口缺省443:
把端口改为443,在<Virtualhost>下加入SSL认证配置,其它的根据需要自己定制 与普通配置无异:
#vi /etc/apache2/sites-enabled/001-ssl
05 |
SSLCertificateFile /etc/apache2/ssl/apache.pem |
06 |
ServerAdmin webmaster@localhost |
08 |
ServerName myServerName |
10 |
Options FollowSymLinks |
14 |
Options FollowSymLinks MultiViews |
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 /
|
六、重启APACHE
# service httpd restart
或,
# /etc/init.d/apache2 restart
测试https://localhost/,IE会弹出security alert(安全警告),如下图:
Firefox会提示是否添加Exception信息,如下图:
参考文章:
SSL和SSH区别: SSL维基百科 SSH维基百科
Ubuntu下配置Apache HTTPS: http://www.mike.org.cn/
CENTOS安装SSL: http://www.centos.bz/
openssl+apache+mod_ssl安装配置调试过程:http://www.infosecurity.org.cn/
更多文章:
RedHat 5上安装APACHE/MYSQL/PHP/GD库
CentOS安装Apache+PHP+MySQL指南
Ubuntu VPS安装Apache+PHP+MySQL指南
如何为Apache绑定多IP多域名
分享到:
相关推荐
NULL 博文链接:https://wb8206656.iteye.com/blog/2217321
Ubuntu20.04+3090ti+python3.7+tensorflow+pytorch下conda环境配置文件.yml 详情可查看博客:https://blog.csdn.net/weixin_42213421/article/details/124225950 python=3.7.13 tensorflow-gpu=2.8.0 tensorboard=...
NULL 博文链接:https://zhengdl126.iteye.com/blog/417151
基于squid配置https的实践文档,基于自己实践写的,不是翻译的 主要是没分了,所以要点分哈
NULL 博文链接:https://yizhilong28.iteye.com/blog/1161027
Ubuntu16.04的软件源配置文件,用windows自带的txt记事本就可以打开,在教育网更新源报错可以试试此源,文件名是sources.list.qinghua,其它ubuntu的版本参考此网页替换文本内容即可:...ubuntu/
git地址https://github.com/magese/ik-analyzer-solr7,注意为solr7x的版本,如果低于此版本可能不使用 另外附件中有solr7的配置
pwn ubuntu18的运行环境具体情参考https://blog.csdn.net/weixin_41748164/article/details/127874334
Windows下有微信、QQ等各种工具可以方便对截图进行编辑,...这里提供的是deepin-scrot_2.0-0deepin_all.deb格式安装包,具体安装配置见链接:https://blog.csdn.net/zhanghm1995/article/details/98439616#Ubuntu_99
Ubuntu20.04+3090ti+python3.6+tensorflow+pytorch下conda环境配置文件.yml 详情可查看博客:https://blog.csdn.net/weixin_42213421/article/details/124225950 python=3.6.13 tensorflow-gpu=2.6.2 tensorboard=...
NULL 博文链接:https://ironurbane.iteye.com/blog/428080
有时候会遇到客户是内网环境的,无法在线通过apt-get install vsftpd进行安装,本文将提供vsftpd_...3、进行ftp配置即可,不动配置的可看我上一博客(https://blog.csdn.net/qq_32648289/article/details/123654639)
NULL 博文链接:https://jrails.iteye.com/blog/1018819
刚刚看了一下ubuntu官网已经更新到20.04了,好不好用咱也不知道,放下官方连接https://ubuntu.com/download/raspberry-pi 有需要18.04.4的我把img包上传到度娘网盘了 链接: https://pan.baidu.com/s/1
看到有很多关于Ubuntu中pip的blog,大多数介绍Ubuntu18.04自带Python2.7和python3.x,并且python中自带pip,但是下了官网的Ubuntu18.04LTS镜像并在VMware中安装后发现我的情况略有不同。 我下载的Ubuntu18.04LTS并未...
在clone好的文件目录下,运行依赖安装脚本 ./scripts/install-deps.sh Bulid ZCM with all features ./waf configure --use-all ./waf build sudo ./waf install 然后就完成啦 更具体的说明可以查看...
安装好了Linux子系统,用户目录是/home/user,C盘目录是/mnt/c。但是这个子系统其实是在C盘上的,如果你要在上面配置一些环境可能会大量占用C盘空间...将Ubuntu放在D盘的WSL文件夹下(-n指定迁移的系统,-d指定迁移路径)
Ubuntu 18.04下通过Matlab runtime使用c++调用自己编写的matlab函数 自己根据自己配置环境,所写的基础文件包 下面是自己配置过程博客:...
ubuntu-18.04.2-live-server-amd64 虚拟机文件(VMware 12)。 已完成静态IP、国内软件源配置。 用户:root 密码:supreme 默认IP网段:192.168.32.xx 注意:导入虚拟机时选择复制,而非移动