субота, 19 серпня 2017 р.

SSL_сертифікати

Налаштування SSL-сертифікатів.

Зустрівся з помилкою в журналі поштового сервера (exim):

2017-08-17 02:42:55 TLS error on connection from mail-la0-f52.google.com [209.85.215.52] (cert/key setup: cert=/etc/exim4/exim.crt key=/etc/exim4/exim.key): The provided X.509 certificate list is not sorted (in subject to issuer order)
Рішення

Для exim4 вказуємо сертифікат сервера і ключ:
у файлі /etc/exim4/exim4.conf.template

tls_certificate = /-path-to-ssl-/server.crt
tls_privatekey = /-path-to-ssl-/server.key

Для веб-сервера сертифікат сервера потрібно об'єднати з сертифікатом кореневого сервера:
у налаштуваннях nginx.conf

server {
    ...
    ssl_certificate      /-path-to-ssl-/server.pem;
    ssl_certificate_key  /-path-to-ssl-/server.key;
    ...
}

При цьому маємо такі файли з сертифікатами:

intermediateCA.crt - кореневий сертифікат
server.crt                 - сертифікат сервера
server.pem               - об'єднаний сертифікат сервера + кореневий
       ( cp server.crt server.pem; cat intermediateCA.crt >> server.pem )
server.key                - ключ сервера


середа, 12 липня 2017 р.

VirtualBox NO_PUBKEY A2F683C52980AECF

Встановлення VirtualBox-у й ключ NO_PUBKEY A2F683C52980AECF

Рішення:
wget -q -O - \
http://download.virtualbox.org/virtualbox/debian/oracle_vbox_2016.asc | sudo apt-key add -

Універсально:
sudo apt-key adv --keyserver keyserver.ubuntu.com \ 
                 --recv-keys 517590D9A8492E35

Skype for Linux (Beta)

При встановленні Skype для Linux з'являється повідомлення про ключ NO_PUBKEY 1F3045A5DF7587C3

Рішення:
curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add -

четвер, 25 травня 2017 р.

Viber Linux Mint (Debian)

Не запускається Viber.
Всього лише потрібно доустановити бібліотеку:

sudo apt-get install libqt5gui5
 

вівторок, 18 квітня 2017 р.

Друга Wi-Fi-точка, як продовження першої

Маю офіс з мережею 192.168.1.0/24. Маю стареньку Wi-Fi точку доступу AP1, що гарно працює в режимі "моста" (bridge).

Задача: встановити ще одну, сучасну, точку доступу AP2, щоб теж не була "розумною", тобто в режимі "моста-подовжувача" (bridge, repitor).

Рішення:
1) відключити uPnP,
2) відключити DHCP-сервер,
3) назначити IP-адресу для AP2.


субота, 8 квітня 2017 р.

WooCommerce category (categories) and product's

Документація з WooCommerce не надихає на код, а чомусь, відсилає в адмінку Wordpress-у.
/* STEP1: parent = 0
   find top-level categories
   знаходимо теки на верхнього рівня
*/
$cats0 = get_terms( 'product_cat',
                    array( 'hide_empty' => false,
                           'fields'     => 'ids',
                           'parent'     => '0',
                           'orderby'    => 'term_id',
                           'order'      => 'ASC'
                   ));
foreach ( $cats0 as $cat0_id ) {
  $cat0 = get_term( $cat0_id, 'product_cat' );
  echo $cat0->name;
  echo $cat0->slug;
  echo $cat0->description;
  /* рибимо те, що потрібно з категорією */


  /* STEP1: parent = $cat0_id
     find next-level categories
     знаходимо теки на рівень нижче
  */
  $cars1 = get_terms( 'product_cat',
                       array( 'hide_empty' => false,
                              'fields'     => 'ids',
                              'parent'     => $cat0_id,
                              'orderby'    => 'term_id',
                              'order'      => 'ASC'
                      ));
  foreach ( $cats1 as $cat1_id ) {
    $cat1 = get_term( $cat1_id, 'product_cat' );
    echo $cat1->name;
    echo $cat1->slug;
    echo $cat1->description;
    /* рибимо те, що потрібно з під-категорією */


    /* STEP3: products
       find products in this category
       знаходимо товари в цій категорії
    */
    if( $_SERVER['REQUEST_URI'] == '/shop/' ){
      $args = array( 'post_type'      => 'product',
                     'posts_per_page' => 6,
                     'product_cat'    => $cat1->slug,
                     'orderby'        => 'name',
                     'order'          => 'ASC'
                   );
      $loop = new WP_Query( $args );
      while ( $loop->have_posts() ) : $loop->the_post();
        global $product;

        /* id */
        echo get_permalink( $loop->post->ID );

        /* title */
        echo $loop->post->post_title;

        /* sale! */
        woocommerce_show_product_sale_flash(
                   $post, $product);

        /* image */
        if (has_post_thumbnail( $loop->post->ID ))
          echo get_the_post_thumbnail(
                   $loop->post->ID, 'shop_catalog');
        else
          echo '<img src="'
               .woocommerce_placeholder_img_src()
               .'"   alt="Placeholder"
                     width="300px" height="300px" />';

        /* description */
        echo strip_tags( $loop->post->post_content );

        /* price */
        echo $product->get_price_html();

        /* add to cart */
        woocommerce_template_loop_add_to_cart(
                   $loop->post, $product );

      endwhile;
      wp_reset_query();
    } /* if $_SERVER['REQUEST_URI'] */
  }   /* foreach $terms1            */
}     /* foreach $terms             */



середа, 8 березня 2017 р.

SSH-тунель з Windows-клієнта через Mikrotik

Задача: зробити віддалений доступ до Windows-сервера з Windows-клаєнта через Mikrotik.

1. Завантажити й встановити PuTTY (наприклад, putty-0.68-installer.msi)
2. Згенерувати ключі - puttygen.exe
2.1. Просто натисніть й рухайте мишкою поки не заповниться синій бігунок.
2.2. Згенеровані ключі потрібно зберегти: public.key та private.key.
 
2.3.АЛЕ, записаний нами приватний ключ не буде прийнятий Mikrotik-ом. Тому потрібно виділити все у віконці

зкопіювати й записати у файл public.key.
3. Сам файл public.ket потрібно перенести на Mikrotik:

pscp.exe -scp -P 22 -pw userpass public.key username@mikrotik:/userkey.pub

4. Імпортуємо (прив’язуємо) ключ до користувача:
5. Завантажуємо ключ в ssh-agent-а:

pageant.exe C:\Program Files\putty\keys\
private.ppk


6. Тепер робимо тунель командою plink.exe:

plink -batch -ssh -N username@mikrotik -P 22 -pw userpass -L 15110:server:3389