本人头一次配,加起来搞了一天整,踩了不少离线包安装的坑,所以如果觉得技术没到位还是不要用离线安装方式了,还好中途换成apt-get方式,最后配出来了,回头想想傻瓜式是简单的。
准备
域名自己买,服务器自己买(直接买阿里云就省了第二步)
MysqL,java,tomcat,Nginx安装
root用户不需要用加sudo
sudo apt-get install MysqL-server
sudo apt-get install MysqL-client
sudo apt-get install libMysqLclient-dev
sudo apt-get install default-jdk
tomcat下载地址若链接失效可以到官网下,载完传到服务器解压即可(tar -zxvf fileName)
sudo apt-get install Nginx
(可能会报错缺失哪些库,如openssl,zlib等,反正直接apt-get即可)
apt-get -f install 报错的一种解决方案
‘dpkg -l ’查看所有已安装的软件
根据报错信息,找到出错的软件包,使用“dpkg –purge ERROR_NAME”移除此软件
申请SSL证书
申请证书地址(有免费和收费,按时按需申请,不同的地方稍微有些不一样)
步骤
1、确认需要申请证书的域名;
- 2、生成私钥和csr文件:
-
在linux机器上执行以下命令生成私钥
openssl genrsa -out server.key 2048
-
openssl req -new -key server.key -out certreq.csr
以下黑色标识文字仅供参考,请根据商户自己实际情况进行填写
Country Name: CN //您所在国家的ISO标准代号,中国为CN
State or Province Name:guandong //您单位所在地省/自治区/直辖市
Locality Name:shenzhen //您单位所在地的市/县/区
Organization Name: Tencent Technology (Shenzhen) Company Limited //您单位/机构/企业合法的名称
Organizational Unit Name: R&D //部门名称
Common Name: www.example.com //通用名,例如:www.itrus.com.cn。此项必须与您访问提供SSL服务的服务器时所应用的域名完全匹配。
Email Address: //您的邮件地址,不必输入,直接回车跳过
“extra”attributes //以下信息不必输入,回车跳过直到命令执行完毕。 - 执行上面的命令后,在当前目录下即可生成私钥文件server.key和certreq.csr csr文件
3、将生成的csr文件提交给第三方证书颁发机构申请对应域名的服务器证书,同时将私钥文件保存好,以免丢失。
4、证书申请后,证书颁发机构会提供服务器证书内容和两张中级CA证书,请按证书颁发机器说明生成服务器证书,此处假设服务器证书文件名称为server.crt
5、将生成的私钥文件server.key和服务器证书server.crt拷贝至服务器指定的目录即可进行HTTPS服务器配置
附:证书安装参考地址
Nginx配置
cd /etc/Nginx/sites-enabled/
# 在/etc/Nginx/Nginx.conf中使用是导入/sites-enabled文件夹下的所有文件
# 所以我需要将该文件备份到其他的目录
cp defaut /home/java/bak
# 编辑该文件
sudo vi default
server {
listen 443;
#自己的域名
server_name awcar.zghzbckj.com;
root html;
index index.html index.htm;
ssl on;
ssl_certificate /usr/app/privatekey/testweb.95105813.cn.crt;
ssl_certificate_key /usr/app/privatekey/awcar.zghzbckj.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!3DES:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;
location / {
#指向本地tomcat
proxy_pass http://127.0.0.1:8080;
}
}