使用EC2,VPC搭建博客系统详细步骤-3
2. 启动EC2实例,选择合适的AMI等等。
某些情况下,类似VMware ESXi。全称Amazon Elastic Compute Cloud,简称Amazon EC2。首先是laaS,Google的Google Compute Engine;微软的Microsoft Azure都是如此。EC2使用Xen虚拟化技术。每个虚拟机,又称作“实例”(instance),能够运行小、大、极大三种能力的虚拟私有服务器。Amazon.com利用EC2 Compute Units去分配硬件资源(一个ECU相当与一个Sandy Bridge级Xeon)。
3.1 远程(CRT等工具使用*.pub等密钥文件)
使用CRT等去远程实例,稍微检查下更新
sudo yum update -y
3.2 安装 Amazon Linux Extras和PHP
安装 lamp-mariadb10.2-php7.2 和 php7.2 Amazon Linux Extras 存储库。查看安装过程(安装/安装依赖/依赖关系已更新)就会发现经过Amazon 优化后的Linux,对于应用优化的非常棒。
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
sudo yum reinstall yum --noplugins
3.3 安装 Apache Web 、MariaDB
sudo yum install -y httpd mariadb-server
3.4 启动,设置开机自启apache等。并测试。
3.4.1 测试apache
[ec2-user@ip-172-15-1-131 ~]$ sudo -s [root@ip-172-15-1-131 ec2-user]# mkdir /var/www/html/a wget -P /var/www/html/a/ https://raw.githubusercontent.com/AWSinAction/\code/master/chapter3/a/index.html [root@ip-172-15-1-131 ec2-user]# cat /var/www/html/a/index.html <html> <head> <title>djf</title> </head> <body> <h1>Hello A!</h1> </body> </html> [ec2-user@ip-172-15-1-131 ~]$ cat /etc/httpd/conf.d/a.conf <VirtualHost 172.15.1.131:80> DocumentRoot /var/www/html/a </VirtualHost> [ec2-user@ip-172-15-1-131 ~]$ [ec2-user@ip-172-15-1-131 ~]$ sudo vim /etc/httpd/conf.d/a.conf [ec2-user@ip-172-15-1-131 ~]$ sudo systemctl restart httpd
或者加一个/var/www/html/phpinfo.php
文件
sudo yum list installed httpd mariadb-server php-mysqlnd
测试后删除:
rm /var/www/html/phpinfo.php
验证必需的程序包。
sudo yum list installed httpd mariadb-server php-mysqlnd
3.5 设置文件权限
添加用户到组: sudo usermod -a -G apache ec2-user 将/var/www 及其内容的组所有权更改到 apache 组: sudo chown -R ec2-user:apache /var/www 添加组写入权限以及设置未来子目录上的组 ID,请更改 /var/www 及其子目录的目录权限: sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \; 添加组写入权限,递归更改 /var/www 及其子目录的文件权限: find /var/www -type f -exec sudo chmod 0664 {} \;
3.6 获取CA,启用SSL/TLS
获取Apache 模块 mod_ssl
sudo yum install -y mod_ssl
需要用到三个文件,若没有,手动创建证书
使用openssl手动创建证书:
安装openssl:sudo yum install openssl openssl-devel
/etc/httpd/conf.d/ssl.conf
mod_ssl 的配置文件。它包含告知 Apache 以下信息的“指令”:在何处查找加密密钥和证书、允许哪些 SSL/TLS 协议版本、接受哪种加密密码。
/etc/pki/tls/private/localhost.key
针对 Amazon EC2 主机的自动生成的 2048 位 RSA 私有密钥。在安装期间,OpenSSL 已使用此密钥生成自签名主机证书,可使用此密钥生成证书签名请求 (CSR) 以提交给证书颁发机构 (CA)。
注意:如果在目录列表中看不到此文件,则可能是因为其访问权限受限。请尝试在目录中运行 sudo ls -al。
/etc/pki/tls/certs/localhost.crt
针对服务器主机的自动生成的自签名 X.509 证书。此证书对于测试是否已将 Apache 正确设置为使用 SSL/TLS 来说很有用。
3.6.1 创建密钥
使用非对称加密算法RSA生成 2048 位 RSA 私钥。
sudo openssl genrsa -out localhost.key 2048
采用256位rsa算法生成密钥localhost.key文件,这种方法产生的证书在apache等服务器中启动服务器时不会要求输入密码,同时也不会把私钥加密。
或sudo openssl genrsa -out custom.key 4096(创建系数更大的更严格的 RSA 密钥),一般情况下,现在个人应用需要768比特,公司需要使用1024比特,一些极其重要的场合需要使用2048比特。
使用对称加密算法DES3加密新产生的 1024 位 RSA 私有test.key文件,每次要使用这个私钥时都要用输入密码。如果电子证书是用在apache等服务器中,每次启动服务器时都要输入密码一次。
使用对称加密算法AES-128 密码加密的 4096 位 RSA 私有密钥。
sudo openssl genrsa -aes128 -passout pass:abc12345 -out custom.key 4096
创建普通(基于椭圆曲线的数学运算的密钥)密码:
sudo openssl ecparam -name prime256v1 -out putong.key -genkey
输出为一个使用 prime256v1 (OpenSSL 支持的“命名曲线”) 的 256 位椭圆曲线私有密钥。根据 NIST,其加密强度略高于 2048 位 RSA 密钥。
通常把localhost.csr这个档案给第三方CA(Certificate Authority)机构签署生成证书就可以了。
openssl x509 -req -days 365 -in localhost.csr -signkey localhost.key -out localhost.crt
openssl x509 -req -days 365 -in localhost.csr -signkey localhost.key -out localhost.crt
自签名证书:sudo openssl req -x509 -days 365 -in localhost.csr -key localhost.key -out localhost.crt
3.6.5 配置ssl.conf
用于加密 SSL/TLS 数据流的快速密码 RC4 具有多个重大弱点。修复方法是完全禁用 RC4 支持。
禁用 SSL 版本 2 和 3,以及 TLS 版本 1.0 和 1.1。服务器现在拒绝接受与任何不是使用支持的 TLS 版本的客户端进行加密连接。