{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "Заметки Александра Чернышева: заметки с тегом ssl",
    "_rss_description": "Keep in mind",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/aschernyshev.ru\/tags\/ssl\/",
    "feed_url": "https:\/\/aschernyshev.ru\/tags\/ssl\/json\/",
    "icon": "https:\/\/aschernyshev.ru\/user\/userpic@2x.jpg?1469596960",
    "author": {
        "name": "Александр Чернышев",
        "url": "https:\/\/aschernyshev.ru\/",
        "avatar": "https:\/\/aschernyshev.ru\/user\/userpic@2x.jpg?1469596960"
    },
    "items": [
        {
            "id": "66",
            "url": "https:\/\/aschernyshev.ru\/all\/http-2-0-v-nginx-na-centos-7\/",
            "title": "HTTP\/2.0 в Nginx на CentOS 7",
            "content_html": "<p><b>UPD<\/b><br \/>\n<b>Вышло обновление openssl-1.0.2k и даное руководство больше не актуально.<\/b><br \/>\n_____________________________________________________________________<\/p>\n<p>Решил включить HTTP\/2.0 в Nginx. В процессе тестирование, при прохождении <a href=\"https:\/\/tools.keycdn.com\/http2-test\">теста<\/a>  выяснилось, что не активно <a href=\"https:\/\/en.wikipedia.org\/wiki\/Application-Layer_Protocol_Negotiation\">ALPN<\/a> (Application-Layer Protocol Negotiation).<\/p>\n<p>Для полноценной работы HTTP\/2.0, Nginx должен быть собран с <a href=\"http:\/\/xgu.ru\/wiki\/OpenSSL\">OpenSSL<\/a> версии не ниже чем 1.0.2. В репах CentOS есть только OpenSSL версии 1.0.1.<br \/>\nРешить эту проблему можно двумя способами: собрать Nginx с флагом <a href=\"https:\/\/victor.4devs.io\/ru\/architecture\/nginx-http2-does-not-work.html\">—with-openssl<\/a> или собрать OpenSSL 1.0.2 для CentOS.<br \/>\nПервый вариант у меня не взлетел, сборка пакета завершалась неудачно, поэтому я остановился на втором варианте.<br \/>\nВ интернет нашел <a href=\"http:\/\/ja.528p.com\/linux\/centos6\/XE001-openssl.html\">сайт<\/a>, где автор предлагает пачтить сорцы OpenSSL, но недавно в CentOS прилетело обновление glibc-2.17.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">rpm -qa | grep glibc\r\nglibc-common-2.17-157.el7_3.4.x86_64\r\nglibc-2.17-157.el7_3.4.x86_64\r\nglibc-devel-2.17-157.el7_3.4.x86_64\r\nglibc-headers-2.17-157.el7_3.4.x86_64<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">readelf -s \/usr\/lib64\/libc.so.6 | grep secure_getenv<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">614: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 __libc_secure_getenv@@GLIBC_PRIVATE\r\n857: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 __secure_getenv@GLIBC_2.2.5\r\n1715: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 secure_getenv@@GLIBC_2.17\r\n5228: 0000000000038950    27 FUNC    LOCAL  DEFAULT   12 __GI___libc_secure_getenv\r\n6506: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 __secure_getenv@GLIBC_2.2\r\n6529: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 secure_getenv\r\n6918: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 __libc_secure_getenv<\/code><\/pre><p>Так что ничего патчить не нужно, а просто собираем <a href=\"https:\/\/www.mirrorservice.org\/sites\/dl.fedoraproject.org\/pub\/fedora\/linux\/releases\/23\/Workstation\/source\/SRPMS\/o\/openssl-1.0.2d-2.fc23.src.rpm\">openssl<\/a> из FC23. Дополнительно потребуется пересобрать еще один пакет из FC23 <a href=\"https:\/\/www.mirrorservice.org\/sites\/dl.fedoraproject.org\/pub\/fedora\/linux\/releases\/23\/Workstation\/source\/SRPMS\/c\/crypto-policies-20150518-3.gitffe885e.fc23.src.rpm\">crypto-policies<\/a>.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">yum install epel-release &amp;&amp; yum update &amp;&amp; yum install mock<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">mkdir -p ~\/rpmbuild\/{SPECS,SOURCES,SRPMS}<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">wget http:\/\/nginx.org\/packages\/centos\/7\/SRPMS\/nginx-1.12.1-1.el7.ngx.src.rpm<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">rpm -ivh ~\/nginx-1.12.1-1.el7.ngx.src.rpm<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">grep 'Requires: openssl &gt;= 1.0.1' -P -R -I -l ~\/rpmbuild\/SPECS\/nginx.spec | xargs sed -i 's\/Requires: openssl &gt;= 1.0.1\/Requires: openssl &gt;= 1.0.2\/g'<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">grep 'BuildRequires: openssl-devel &gt;= 1.0.1' -P -R -I -l ~\/rpmbuild\/SPECS\/nginx.spec | xargs sed -i 's\/BuildRequires: openssl-devel &gt;= 1.0.1\/BuildRequires: openssl-devel &gt;= 1.0.2\/g'<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">grep 'define main_release 1' -P -R -I -l  ~\/rpmbuild\/SPECS\/nginx.spec | xargs sed -i 's\/define main_release 1\/define main_release 2\/g'<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">grep '%changelog' -P -R -I -l  \/root\/rpmbuild\/SPECS\/nginx.spec | xargs sed -i 's\/%changelog\/%changelog\\n* Wed Jul 12 2017 Aleksandr Chernyshev &lt;mail@aschernyshev.ru&gt;\\n- 1.12.1 \\n- Rebuild with openssl-1.0.2d\\n\/g'<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">\/usr\/bin\/mock -r epel-7-x86_64 --spec=~\/rpmbuild\/SPECS\/nginx.spec --sources=~\/rpmbuild\/SOURCES\/ --resultdir=~\/rpmbuild\/SRPMS\/ --no-clean --buildsrpm<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">wget https:\/\/aschernyshev.ru\/repository\/rhel\/7\/noarch\/crypto-policies-20150518-3.gitffe885e.el7.centos.noarch.rpm\r\nwget https:\/\/aschernyshev.ru\/repository\/rhel\/7\/x86_64\/openssl-libs-1.0.2d-2.el7.centos.x86_64.rpm\r\nwget https:\/\/aschernyshev.ru\/repository\/rhel\/7\/x86_64\/openssl-1.0.2d-2.el7.centos.x86_64.rpm\r\nwget https:\/\/aschernyshev.ru\/repository\/rhel\/7\/x86_64\/openssl-devel-1.0.2d-2.el7.centos.x86_64.rpm<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">\/usr\/bin\/mock -r epel-7-x86_64 --init\r\n\/usr\/bin\/mock -r epel-7-x86_64 --install ~\/crypto-policies-20150518-3.gitffe885e.el7.centos.noarch.rpm\r\n\/usr\/bin\/mock -r epel-7-x86_64 --install ~\/openssl-libs-1.0.2d-2.el7.centos.x86_64.rpm\r\n\/usr\/bin\/mock -r epel-7-x86_64 --install ~\/openssl-1.0.2d-2.el7.centos.x86_64.rpm\r\n\/usr\/bin\/mock -r epel-7-x86_64 --install ~\/openssl-devel-1.0.2d-2.el7.centos.x86_64.rpm\r\n\/usr\/bin\/mock -r epel-7-x86_64 --no-clean ~\/rpmbuild\/SRPMS\/nginx-1.12.1-2.el7.centos.ngx.src.rpm<\/code><\/pre><p>Устанавливаем получившиеся <a href=\"https:\/\/aschernyshev.ru\/repository\/rhel\/7\/noarch\/crypto-policies-20150518-3.gitffe885e.el7.centos.noarch.rpm\">crypto-policies<\/a>, <a href=\"https:\/\/aschernyshev.ru\/repository\/rhel\/7\/x86_64\/openssl-1.0.2d-2.el7.centos.x86_64.rpm\">openssl<\/a>, <a href=\"https:\/\/aschernyshev.ru\/repository\/rhel\/7\/x86_64\/openssl-libs-1.0.2d-2.el7.centos.x86_64.rpm\">openssl-libs<\/a> , <a href=\"https:\/\/aschernyshev.ru\/repository\/rhel\/7\/x86_64\/nginx-1.12.1-2.el7.centos.ngx.x86_64.rpm\">nginx<\/a>.<\/p>\n",
            "date_published": "2017-07-12T12:03:18+03:00",
            "date_modified": "2017-10-19T18:05:37+03:00",
            "_date_published_rfc2822": "Wed, 12 Jul 2017 12:03:18 +0300",
            "_rss_guid_is_permalink": "true",
            "_rss_guid": "https:\/\/aschernyshev.ru\/all\/http-2-0-v-nginx-na-centos-7\/",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "15",
            "url": "https:\/\/aschernyshev.ru\/all\/poluchaem-ssl-sertifikat-lets-encrypt\/",
            "title": "Получаем SSL сертификат Let’s Encrypt.",
            "content_html": "<pre class=\"e2-text-code\"><code class=\"\">sudo yum install epel-release\r\nsudo yum install certbot<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">vi \/etc\/nginx\/letsencrypt.conf<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">location ^~ \/.well-known\/acme-challenge {\r\n    alias \/var\/lib\/letsencrypt\/.well-known\/acme-challenge;\r\n    default_type &quot;text\/plain&quot;;\r\n    try_files $uri =404;\r\n}<\/code><\/pre><p>В конфигурационном файле хоста, секцию <b>server<\/b>, include-ом добавляем конфиг.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">vi \/etc\/nginx\/conf.d\/$HOST.conf<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">server {\r\n    ...\r\n\r\n    include letsencrypt.conf;\r\n}<\/code><\/pre><p>Изменяем группу и выставляем права.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">chgrp nginx \/var\/lib\/letsencrypt &amp;&amp; chmod g+s \/var\/lib\/letsencrypt<\/code><\/pre><p>Получаем сертификат.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">certbot certonly --webroot --email mail@example.com -w \/var\/lib\/letsencrypt -d example.com -d www.example.com<\/code><\/pre><p>Сертификат действует <b>90 дней<\/b>, после чего его необходимо продлить. Для автоматизации этой процедуры создаем <b>systemd.service<\/b> и <b>systemd.timer<\/b>.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/etc\/systemd\/system\/certbot.service<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">[Unit]\r\nDescription=Renew Certbot certificate (nginx)\r\nAfter=network-online.target\r\n\r\n[Service]\r\nType=oneshot\r\nExecStart=\/usr\/bin\/certbot renew --renew-hook &quot;\/usr\/bin\/systemctl reload nginx.service&quot;<\/code><\/pre><p>Timer будет запускать основной сервис ежедневно  в <b>12<\/b> и <b>00<\/b> часов.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/etc\/systemd\/system\/certbot.timer<\/code><\/pre><pre class=\"e2-text-code\"><code class=\"\">[Unit]\r\nDescription=Daily renewal of Let's Encrypt's certificates\r\n\r\n[Timer]\r\nOnCalendar=*-*-* 00,12:00:00\r\nPersistent=true\r\n\r\n[Install]\r\nWantedBy=timers.target<\/code><\/pre><p>Активируем timer.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">sudo systemctl daemon-reload\r\nsystemctl start certbot.timer\r\nsystemctl enable certbot.timer<\/code><\/pre>",
            "date_published": "2016-11-05T16:35:21+03:00",
            "date_modified": "2016-10-12T10:53:54+03:00",
            "_date_published_rfc2822": "Sat, 05 Nov 2016 16:35:21 +0300",
            "_rss_guid_is_permalink": "true",
            "_rss_guid": "https:\/\/aschernyshev.ru\/all\/poluchaem-ssl-sertifikat-lets-encrypt\/",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        }
    ],
    "_e2_version": 3576,
    "_e2_ua_string": "E2 (v3576; Aegea)"
}