wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.8/src/apache-tomcat-10.1.8-src.tar.gz
tar -zxvf apache-tomcat-10.1.8-src.tar.gz
在/etc/profile 末尾追加
export CATALINA_HOME="/usr/local/tomcat"
export CATALINA_BASE="/usr/locall/tomcat"
source /etc/prodfile 使配置立即生效
在tomcat的主目录下bin文件中有starup.sh shutdown.sh 测试tomcat是否安装成功.
打开/etc/profile
JAVA_HOME="/usr/local/jdk"
JAVA_BIN="/usr/local/jdk/bin"
PATH=$PATH:$JAVA_BIN
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
!wq 保存退出
source /etc/profile 使配置立即生效哦
ln -s /usr/local/jdk_source /usr/local/jdk
chmod 777 -R /usr/local/example
这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bash_profile文件就可以了。
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
useradd xiaohu 新增用户
passwd 123456 添加密码
userdel xiaohu 删除用户
rm -rf xiaohu 删除用户xiaohu所在目录
bash: keytool: command not found…
结果找了半天才发现javahome都没设置。。也是郁闷。。希望对遇到同样问题的有帮助
配置环境变量
vi /etc/profile
i插入
添加以下三句export到文件最后 注意JAVA_HOME的目录为你解压jdk的目录版本为你下载的jdk版本
export JAVA_HOME=/java/jdk1.7.0_79
export CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
安装证书
Tomcat支持JKS格式证书,从Tomcat7开始也支持PFX格式证书,两种证书格式任选其一。
文件说明:
- 证书文件214279090710514.pem,包含两段内容,请不要删除任何一段内容。
- 如果是证书系统创建的CSR,还包含:证书私钥文件214279090710514.key、PFX格式证书文件214279090710514.pfx、PFX格式证书密码文件pfx-password.txt。
在Tomcat的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,附件中只包含214279090710514.pem文件,还需要将私钥文件拷贝到cert目录,命名为214279090710514.key;如果是系统创建的CSR,请直接到第2步。
到cert目录下执行如下命令完成PFX格式转换命令,此处要设置PFX证书密码,请牢记:
openssl pkcs12 -export -out 214279090710514.pfx -inkey 214279090710514.key -in 214279090710514.pem
找到安装Tomcat目录下该文件server.xml,一般默认路径都是在 conf 文件夹中。找到 <Connection port="8443"标签,增加如下属性:
keystoreFile=“cert/214279090710514.pfx”
keystoreType=“PKCS12”
#此处的证书密码,请参考附件中的密码文件或在第1步中设置的密码
keystorePass=“证书密码”
完整的配置如下,其中port属性根据实际情况修改:
<Connector port="8443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/214279090710514.pfx"
keystoreType="PKCS12"
keystorePass="证书密码"
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
keytool -importkeystore -srckeystore 214279090710514.pfx -destkeystore your-name.jks -srcstoretype PKCS12 -deststoretype JKS
回车后输入JKS证书密码和PFX证书密码,强烈推荐将JKS密码与PFX证书密码相同,否则可能会导致Tomcat启动失败。
keystoreFile=“cert/your-name.jks”
keystorePass=“证书密码”
完整的配置如下,其中port属性根据实际情况修改:
<Connector port="8443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/your-name.jks"
keystorePass="证书密码"
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
( 注意:不要直接拷贝所有配置,只需添加 keystoreFile,keystorePass等参数即可,其它参数请根据自己的实际情况修改 )
/**
* @author ifanatic.cn
* @see AES算法加密明文
* @param data 明文
* @param key 密钥,长度16
* @param iv 偏移量,长度16
* @return 密文
*/
public static byte[] encryptAES(byte[] dataBytes,String key,String iv) throws Exception {
try {
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
int blockSize = cipher.getBlockSize();
//byte[] dataBytes = data.getBytes();
int plaintextLength = dataBytes.length;
if (plaintextLength % blockSize != 0) {
plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
}
byte[] plaintext = new byte[plaintextLength];
System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);
SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
cipher.init(Cipher.ENCRYPT_MODE, keyspec);
byte[] encrypted = cipher.doFinal(plaintext);
return encrypted;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* @author ifanatic.cn
* @see AES算法解密密文
* @param data 密文
* @param key 密钥,长度16
* @param iv 偏移量,长度16
* @return 明文
*/
public static byte[] decryptAES(byte[] encrypted,String key,String iv) throws Exception {
try {
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
cipher.init(Cipher.DECRYPT_MODE, keyspec);
byte[] original = cipher.doFinal(encrypted);
return original;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 编码
* @param byteArray
* @return
*/
public static String Base64HelperEncode(byte[] byteArray) {
return new String(new Base64().encode(byteArray));
}
/**
* 解码
* @param base64EncodedString
* @return
*/
public static byte[] Base64HelperDecode(String base64EncodedString) {
return new Base64().decode(base64EncodedString);
}