https://console.developers.google.com/apis/library
jorn….
Utworzenie CA i certyfikat serwera
TLS jest domyślnie wyłączony, aby go włączyć w pliku
/etc/postfix/main.cf: smtpd_tls_security_level = may - serwer ogłasza obsługę STARTTLS klientom SMTP, nie wymusza szyfrowania smtpd_tls_security_level = encrypt - wymusza szyfrowanie TLS (NIE STOSOWAĆ)
Włącza szyfrowanie na porcie 465 (smtps) – odkomentować opcje:
/etc/postfix/master.cf: # zakomentować opcję - wyłącza port 25 #smtp inet n - y - - smtpd # odkomentować opcje - włącza 465 smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Pliki i style do korekty:
SASL – autoryzacja zewnętrznych klientów
https://www.postfix.org/SASL_README.html
Czytaj dalej Postfix – SASL
# openssl ciphers -v
TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
....
Jeśli baza haseł pochodzi z zewnętrznej aplikacji i jest skrótem sha1 to aby Cake skutecznie użył Fallback’u – trzeba wyłączyć sól.
Cake/Auth/WeakPasswordHasher.php
public function hash($password)
{
return Security::hash($password, $this->_config['hashType'], true);
}
true zamienić na false - nie będzie używał Security::salt
https://api.cakephp.org/3.0/source-class-Cake.Auth.WeakPasswordHasher.html#21-72
# postconf mail_version - wersja systemu mail_version = 3.1.9 # nano /etc/postfix/main.cf # postconf -e 'smtpd_sasl_path = private/auth' # postconf -n # postfix reload lub # systemctl restart postfix # systemctl status postfix # netstat -tlpn # tailf /var/log/mail.log
/etc/apache2/sites-available/000-default.conf
<VirtualHost 156.111.131.212:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/h25
ServerName h25.pl
</VirtualHost>
# certbot certonly --webroot -w /var/www/html/h25 -d h25.pl
/etc/letsencrypt/live/h25.pl/fullchain.pem
/etc/letsencrypt/live/h25.pl/privkey.pem
# certbot renew
Application.php : bootstrap()
if ( Configure::read('debug') ) {
Configure::write('DebugKit.forceEnable', true);
$this->addPlugin(\DebugKit\Plugin::class);
}
# cd /var/www/html
# curl -s https://getcomposer.org/installer | php
# mv composer.phar /usr/local/bin/composer
# composer create-project --prefer-dist cakephp/app cms
#composer require twbs/bootstrap:4.3.0
# apt-get update # apt-get upgrade Czytaj dalej Aruba debian początek instalacji
# composer require imagine/imagine
# composer require cakephp/migrations
# composer require burzum/file-storage:2.*
# cake migrations migrate -p Burzum/FileStorage
apt -y install lsb-release apt-transport-https ca-certificates ## zainstalowane
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.3.list
apt update
apt -y install php7.3
apt install php7.3-
php7.3-xml
php7.3-intl
php7.3-soap
php7.3-mysql
php7.3-mbstring
php7.3-gd
php7.3-openssl
php7.3-curl
php7.3-zip
php7.3-xmlrpc
php7.3-sqlite3
apt install libapache2-mod-php7.3
apt policy php7.3-cli
a2dismod php7.2
a2enmod php7.3
systemctl restart apache2
<!DOCTYPE html>
<html>
<head>
<script src="https://cloud.tinymce.com/stable/tinymce.min.js"></script>
<script>tinymce.init({ selector:'textarea' });</script>
</head>
<body>
<textarea>Pole edytora</textarea>
</body>
</html>
Templates/Layout/pdf/default.ctp
<html>
<head>
<link rel="stylesheet" href="/css/flipclock.css">
</head>
<body>
<div class="your-clock"></div>
<script src="/js/libs/jquery.js"></script>
<script src="/js/flipclock/flipclock.min.js"></script>
</body>
</html>
var clock = $('.your-clock').FlipClock({
// ... your options here
});
Aktualizuje wiele rekordów
function publishAllUnpublished() { $this->updateAll( [ // fields 'published' => true, 'publish_date' => FrozenTime::now() ], [ // conditions 'published' => false ] ); }
# Wymuszanie https:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Instalacja cake
# php composer.phar create-project --prefer-dist cakephp/app media77
echo "<pre>". print_r($query, 1) ."</pre>"; exit;
class ArticlesTable extends Table { public static function defaultConnectionName() { return 'replica_db' ; } }
#!/bin/sh IPTABLES=/sbin/iptables MODEPROBE=/sbin/modprobe INT_NET=10.1.0.0/16 INT_IN=eno2 INT_OUT=eno1
Utworzenie wirtualnego hosta /etc/apache2/sites-available/000-default.conf
<VirtualHost 81.137.4.24:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/example ServerName example.pl </VirtualHost>
Można dodać/usunąć domenę do certyfikatu już istniejącego np. o nazwie example.com:
# certbot certonly --cert-name example.com -d example.org,www.example.org
Nowy certyfikat będzie zawierał teraz dwie nazwy example.org oraz www.example.org
# apt install ca-certificates apt-transport-https
https://certbot.eff.org/docs/using.html
# certbot certonly --webroot -w /var/www/rewita/webroot -d tmp.rewita.pl -d crm.rewita.pl
Odnowienie co 60 dni poprzez moduł wykorzystujący crona
Odnawia wszystkie certyfikaty, które zbliżają się do wygaśnięcia <= 30 dni do końca. Komendę można wydawać codziennie lub raz na tydzień, można dodać do crona.
# certbot renew
Tylko sprawdza działania –dry-run
# certbot renew --dry-run
Zmiana długości klucza z 2048 na 4096
# certbot renew --rsa-key-size 4096
DNS plugin musi być zainstalowany dla dostawcy dns
# certbot -a <dns-plugin> -i apache -d "*.example.com" -d example.com --server https://acme-v02.api.letsencrypt.org/directory
Ręczna konfiguracja certyfikatów:
# certbot certonly --authenticator standalone
Przed zainstalowaniem trzeba zatrzymać serwer ręcznie lub za pomocą skryptów:
# certbot certonly --authenticator standalone --pre-hook "apache2ctl -k stop" --post-hook "apache2ctl -k start"