Pages

2023年4月28日 星期五

推薦網路服務平台

  •  網站平台:

架站服務(免費):https://byet.host/

 
資安平台(部分免費):https://www.cloudflare.com/zh-tw/
 

  • 辦公室平台:

市場平台(部分免費):https://www.zoho.com/

 
企業信箱(部分免費):https://www.zoho.com/mail/


  • 多媒體平台

Canva設計平台(付費):https://www.canva.com/projects

 
圖片去背服務(免費):https://www.remove.bg/zh-tw/upload

 
專業圖片設計(付費):https://pixlr.com/tw/

 
圖片特效功能(免費):https://products.aspose.app/imaging/

 

影片編輯平台(部分免費):https://clipchamp.com/


動畫製作平台(部分免費):https://www.animaker.com/

  • 流程圖/心智圖平台

ProcessOn:https://www.processon.com/

【AWS】SQL Server服務備份與還原資料

AWS上面RDS的SQL Server雖然有提供線上的備份服務,但是在導入資料到本地端的開發環卻是比較困難的,因此下方影片提供了相關的步驟來讓大家可以照步驟來進行備份還原AWS上的SQL SERVER的服務資料。

預先準備:

1. AWS S3的空間。

2. SQL Server Manager Stoudo管理工具

Big5部分中文顯示?處理

最近在抓股票資料,但是因為有些上市櫃公司中文字,在預設Big5編碼中不支援,文字抓出來後會顯示?號,因此需要指定特定的編碼方式,才能正確的寫入資料庫中,目前Java的的解決方式如下:

File sotckFile = new File(fileName);
InputStreamReader isr = null;
BufferedReader br = null;
try {
    isr = new InputStreamReader(new FileInputStream(sotckFile), "Big5_HKSCS");
    br = new BufferedReader(isr);
    while (br.ready()) {
        System.out.println(br.readLine());
    }
} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {br.close();br= null;} catch (IOException e) {e.printStackTrace();}
    try {isr.close();isr= null;} catch (IOException e) {e.printStackTrace();}
}

COMODO SSL證書合成順序

 SSL證書是目前網站使用https所需要的證書檔案,但並不是申請了就可以使用,通常多家SSL證書中還包含一些中繼憑證,因此除了原本提供的crt檔案外,仍需要將中繼憑證檔案放到crt當中,這樣瀏覽器才能根據順序,找到相對應的證書路徑,SSL的加密驗證過程才算完整。。

 

以下是使用 COMODO SSL證書合成順序:

  1. domain.crt
  2. SectigoRSADomainValidationSecureServerCA.crt
  3. USERTrustRSAAAACA.crt
  4. AAACertificateServices.crt

 通常我們會使用Shell指令將SSL合成起來如下:

cat domain.crt SectigoRSADomainValidationSecureServerCA.crt USERTrustRSAAAACA.crt AAACertificateServices.crt > web.crt

合成完畢後,在web server的軟體(Apache或是nginx)設定檔中,將web.crt檔案與domain.key密鑰檔案設定到SSL的參數欄位中,重啟web server的服務後,就完成設置與更新。

 

 更新完畢後,可到下方網站,查看網站的SSL加密評分:

https://www.ssllabs.com/ssltest/

 

如果不想進行這麼這麼複雜設定,可以透過cloudflare的SSL服務,透過DNS託管,可以自動幫自己的網站添加SSL的證書,還可設定網站SSL加密等級從TLS1.0~TLS1.3都有,並且還可以協助網站防禦網路攻擊與過濾流量,是個非常好設定網站安全的平台。

2017年12月26日 星期二

Tomcat使用不同Port運行不同的webapps

<Service name="Catalina">
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">
      <Host name="localhost" appBase="webapps"
                unpackWARs="true" autoDeploy="true">
        <Alias>aaa.xxx.com</Alias>
        <Context path="./" docBase="" debug="0" privileged="true" />
      </Host>
    </Engine>
</Service>

<Service name="CustomCatalina">
    <Connector executor="tomcatThreadPool"
               port="8090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <Engine name="CustomCatalina" defaultHost="localhost">
      <Host name="aaa.xxx.com" appBase="/webap/documents/aaa/"
                unpackWARs="true" autoDeploy="true">
        <Alias>aaa.xxx.com</Alias>
        <Context path="./" docBase="" debug="0" privileged="true" />
        <Valve className="org.apache.catalina.valves.AccessLogValve"
             directory="logs"   prefix="aaa.xxx.com_access_log" suffix=".txt"
             pattern="%h %l %u %t "%r" %s %b" resolveHosts="false" />
      </Host>
    </Engine>
</Service>

Tomcat Server.xml <Host>與<Context>差異

<!--  Host主要設定Domain Name的對應名稱與預設解WAR檔的目錄 -->
<Host name="app.google.com" appBase="webapps" unpackWARs="true"  xmlValidation="false" xmlNamespaceAware="false">

 <!--Context 主要設定URL後面的路徑對應名稱  -->

 <Context docBase="/webap/documents/app1" path="/" reloadable="true" workDir="/webap/documents/work/api1"></Context>

</Host>

<Host name="api.google.com" appBase="webapps"unpackWARs="true" xmlValidation="false" xmlNamespaceAware="false">

 <Context docBase="/webap/documents/api1" path="/" reloadable="true" workDir="/webap/documents/work/api1"></Context>

 <Context docBase="/webap/documents/api2" path="/test/api2" reloadable="true" workDir="/webap/documents/work/api1"></Context>

</Host>

CentOS 6.x安裝PHP 5.5 與MySQL 5.5



wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
yum --enablerepo=remi update -y
# update php5
yum --enablerepo=remi,remi-php55 update -y

yum clean all
yum remove mysql* php* mysql-libs-5.1.73-5.el6_6.x86_64
yum remove php*
yum --enablerepo=remi install mysql mysql-server mysql-connector-odbc mysql-devel libdbi-dbd-mysql
yum --enablerepo=remi install php php-fpm php-gd php-cli php-pdo php-mysql php-mcrypt php-mbstring php-gd php-tidy php-xml php-xmlrpc php-pear php-pecl-memcache php-eaccelerator php-bcmath php-sqlite php-xnmp php-ldap php-pear php-devel
yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql

vim /etc/php.ini
#修改php.ini中的屬性值
date.timezone = "Asia/Taipei"
short_open_tag = on

# Mysql 5.5 啟動與設定
vim /etc/my.cnf
#設定MySQL編碼
[mysqld]
.....
character-set-server=utf8
collation-server=utf8_general_ci

#編輯完後啟動Mysqld
service mysqld start
mysqladmin -u root password 'PASSWORDS'
mysqladmin --user=root --password reload
chkconfig --level 2345 mysqld on

service httpd restart

【Shell】Mysql Dump多個MySQL資料庫

透過vi寫一個備份MySQL多個資料的 db_backup.sh

db_backup.sh檔案內容:
#!/bin/sh
. ~/.bashrc

for DB in db1 db2 db3
do

DATE=`date +%Y-%m-%d`
HOST="xxx.xxx.xxx.xxx"
DEST=/db_backup/${HOST}_mysql_dump_${DB}_${DATE}.sql

### dump db
mysqldump --user=<username>--password=<password> --host=${HOST} --databases ${DB} > $DEST

### compress dump files
gzip $DEST
done
設定該Shell可以運行
chmod 755 db_backup.sh
./db_backup.sh

CentOS 6.9安裝Python 2.7與Azure CLI

在Azure上的CentOS 6.9安裝Azure CLI方式如下:
# 安裝Python 2.7
wget https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64//python27-libs-2.7.14-1.ius.centos6.x86_64.rpm
rpm -Uvh python27-libs-2.7.14-1.ius.centos6.x86_64.rpm
rm -rf python27-libs-2.7.14-1.ius.centos6.x86_64.rpm
vim /etc/bashrc
/etc/bashrc檔案內容新增
# 設定Python的Path路徑到bashrc的最後一行
export PATH=/opt/rh/python27/root/usr/bin/:$PATH
source /etc/bashrc
vim /etc/ld.so.conf
# 檢查ld.so.conf內容設定
include ld.so.conf.d/*.conf
include /opt/rh/python27/root/usr/lib64/
# 檢查ld.so.conf內容設定
ldconfig
python --version

# 安裝Azure CLI
rpm --import https://packages.microsoft.com/keys/microsoft.asc
sh -c 'echo -e "[azure-cli]\nname=Azure CLI\nbaseurl=https://packages.microsoft.com/yumrepos/azure-cli\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/azure-cli.repo'
yum install azure-cli
# 測試 Azure CLI是否正常
az --version
# 依照相關信息進行登入
az login
# 列出目前登入帳號資料
az account list

CentOS 6.9上修改TimeZone方式

在Azure上的CentOS 6.9上修改TimeZone的方式如下:
vim /etc/sysconfig/clock
#下方為m原本的位置是在America,修改成您想要的位置。
Zone=“Asia/Shanghai”


接下來,透過以下Shell指令,我們可以將修改好的TimeZone設定生效。
cp /etc/localtime /root/old.timezone
rm -rf /etc/localtime
#要與TimeZone的位置一致
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#查看目前時間
date

2017年3月7日 星期二

Tomcat 9 多域名SSL設定

在Tomcat 9.0的環境下,可以支援多個域名的設定,首先要先在Connector上先設一個預設的域名與SSL的檔案設定後,再到SSLHostConfig標籤下添加其他域名。

註:JKS檔案可以經由KSE的軟體,將PFX的憑證檔案轉換成JSK的檔案。


 <Connector port="8443"
   protocol="org.apache.coyote.http11.Http11Nio2Protocol"
   maxThreads="150" SSLEnabled="true"
   scheme="https" secure="true"  
   clientAuth="false" sslProtocol="TLS"
   sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1" URIEncoding="UTF-8"
   keystoreFile="conf/aaa.jks"
   keystorePass="changeit"  
   defaultSSLHostConfigName="*.aaa.com" >
  <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"/>
  <SSLHostConfig hostName="*.aaa.com" honorCipherOrder="false"
   ciphers="TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
                   TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
                   TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
                   TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
                   TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
                   TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
                   TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
                   TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
                   TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
                   TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
                   TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
                   TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
       TLS_RSA_WITH_AES_128_CBC_SHA"
   >
    <Certificate certificateKeystoreFile="conf/aaa.jks"
    certificateKeystorePassword="changeit" 
    certificateKeystoreType="RSA"/>
        </SSLHostConfig>
  <SSLHostConfig hostName="*.bbb.com" honorCipherOrder="false"
   ciphers="TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
                   TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
                   TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
                   TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
                   TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
                   TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
                   TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
                   TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
                   TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
                   TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
                   TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
                   TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
       TLS_RSA_WITH_AES_128_CBC_SHA"
   >
    <Certificate certificateKeystoreFile="conf/bbb.pfx"
    certificateKeystorePassword="changeit" 
    certificateKeystoreType="PKCS12"/>
        </SSLHostConfig>
    </Connector>