<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>29984</bug_id>
          
          <creation_ts>2014-04-10 11:44:39 +0400</creation_ts>
          <short_desc>стартовый скрипт cyrus-imap всегда перезаписывает ключи SSL</short_desc>
          <delta_ts>2015-07-11 02:28:34 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>cyrus-imapd</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Стас">stas.grumbler</reporter>
          <assigned_to name="Sergey Y. Afonin">asy</assigned_to>
          <cc>admsasha</cc>
    
    <cc>asy</cc>
    
    <cc>cas</cc>
    
    <cc>vvk</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>146096</commentid>
    <comment_count>0</comment_count>
      <attachid>6080</attachid>
    <who name="Стас">stas.grumbler</who>
    <bug_when>2014-04-10 11:44:39 +0400</bug_when>
    <thetext>Created attachment 6080
Патч - добавление проверки на наличие файлов ключа и сертификата

В /etc/init.d/cyrus-imapd есть такой код:

start() {
    is_yes &quot;$NETWORKING&quot; || return 0

    ssl_generate &quot;cyrus&quot;
    cp -f &quot;$SSL_CERTDIR&quot;/cyrus.cert /var/lib/imap/ssl/
    cp -f &quot;$SSL_KEYDIR&quot;/cyrus.key /var/lib/imap/ssl/
    chmod 0640 /var/lib/imap/ssl/cyrus.{cert,key}
    chown root:cyrus /var/lib/imap/ssl/cyrus.{cert,key}
    find -L &quot;$SSL_CERTDIR&quot; -type l -delete

    start_daemon --pidfile &quot;$PIDFILE&quot; --lockfile &quot;$LOCKFILE&quot; --expect-user cyrus -- \
    cyrus-master &quot;$CYRUSOPTIONS&quot;
    RETVAL=$?
    return $RETVAL
}

Патч прилагаю.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146100</commentid>
    <comment_count>1</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2014-04-10 15:34:20 +0400</bug_when>
    <thetext>На Sisyphus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146163</commentid>
    <comment_count>2</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2014-04-11 17:54:56 +0400</bug_when>
    <thetext>Столько лет использую, а в init-скрипт не смотрел ни разу... Вопрос, а это копирование требуется вообще тут ? Может, вынести в какой-нибудь updatecert ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146189</commentid>
    <comment_count>3</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2014-04-14 14:49:11 +0400</bug_when>
    <thetext>Как раз сейчас настраиваю сервер в очередной раз:

Первый запуск:
# service cyrus-imapd restart
Service cyrus-master is not running.          [PASSED]
Generating cyrus SSL private key:             [ DONE ]
Generating cyrus SSL certificate request:     [ DONE ]
Generating cyrus SSL self-signed certificate: [ DONE ]
Generating cyrus SSL PEM certificate:         [ DONE ]
Starting cyrus-master service:                [ DONE ]

Второй запуск:
# service cyrus-imapd start
Starting cyrus-master service:                [ DONE ]

То есть, они копируются, но одни и те же. Сдаётся мне, что тут задумка была у vvk@ (commit d6980a67e42316b8433a60ae9994a522919a4aff) в том, чтобы сертификаты были скопированы в случае их обновления. Чем мешает копирование в момент рестарта ? Или у Вас сертификаты не лежат в общем хранилище дистрибутива (/var/lib/ssl) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146203</commentid>
    <comment_count>4</comment_count>
    <who name="Стас">stas.grumbler</who>
    <bug_when>2014-04-14 23:58:23 +0400</bug_when>
    <thetext>Да, свои серверные сертификат и ключ не стал складывать в /var/lib/ssl Я просто сделал линки на сертификаты, которые положил к себе в домашний каталог (с нужными правами), но это уже несущественно.
Я не понимаю, зачем при каждом запуске писать одно и то же в фаловую систему, которая вполне может быть и на флешке или SSD. Если необходимо копировать новые сертификаты, достаточно проверить время создания файлов (образцового и рабочего), это можно следать командой make. при большом желании можно и CRС сравнивать</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146206</commentid>
    <comment_count>5</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2014-04-15 09:28:42 +0400</bug_when>
    <thetext>(In reply to comment #4)

&gt; Я не понимаю, зачем при каждом запуске писать одно и то же в фаловую систему,
&gt; которая вполне может быть и на флешке или SSD.

И что ? Во-первых, у современных флешек и, тем более, SSD достаточно большой ресурс. Во-вторых, cyrus-imapd должен работать - это же сервер, в конце концов. Если он перезапускается хотябы раз в сутки (а это всего 365 перезаписей в год), это уже безобразие какое-то.

Кроме того, в /var/lib/imap/ существуют вообще постоянно меняющиеся данные, например, deliver.db, /var/lib/imap/db/*, /var/lib/imap/lock/*. Тут нет никакого сравнения по частоте перезаписи с копированием ключей. Таким образом, про флешку - не аргумент.

&gt; Если необходимо копировать новые сертификаты, достаточно проверить

Лишний ненужный код. Единственное, что стоит обсуждать, это вариант, когда сертификаты не хранятся в /var/lib/ssl. Хорошо это, или плохо, пока не знаю. Но можно завести какой-нибудь флаг, а-ля AUTO_COPY_CERT (или USE_SYSTEM_CERT), в sysconfig/cyrus-imapd, и проверять его в скрипте.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152120</commentid>
    <comment_count>6</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2015-07-11 02:24:51 +0300</bug_when>
    <thetext>cyrus-imapd-2.4.18-alt1 -&gt; sisyphus:

* Fri Jul 10 2015 Sergey Y. Afonin &lt;asy@altlinux&gt; 2.4.18-alt1
- 2.4.18
- added lsb init header
- added ability to disable copying of certificates in init script
  (Closes: #29984)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152121</commentid>
    <comment_count>7</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2015-07-11 02:28:34 +0300</bug_when>
    <thetext>&quot;Ручка&quot; для отключения лежит в /etc/sysconfig/cyrus-imapd</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6080</attachid>
            <date>2014-04-10 11:44:39 +0400</date>
            <delta_ts>2014-04-10 11:44:39 +0400</delta_ts>
            <desc>Патч - добавление проверки на наличие файлов ключа и сертификата</desc>
            <filename>cyrus-imap.diff</filename>
            <type>text/plain</type>
            <size>707</size>
            <attacher name="Стас">stas.grumbler</attacher>
            
              <data encoding="base64">LS0tIC9ldGMvaW5pdC5kL2N5cnVzLWltYXBkICAgICAyMDEzLTExLTI3IDA4OjI5OjU4LjAwMDAw
MDAwMCArMDYwMAorKysgLi9jeXJ1cy1pbWFwZCAgICAgICAyMDE0LTA0LTEwIDEzOjQxOjM5LjM0
Mzc3NDM2MSArMDYwMApAQCAtNDUsMTIgKzQ1LDE1IEBACiBzdGFydCgpIHsKICAgICBpc195ZXMg
IiRORVRXT1JLSU5HIiB8fCByZXR1cm4gMAogCisgICBpZiBbICEgLWYgL3Zhci9saWIvaW1hcC9z
c2wvY3lydXMuY2VydCAtbyAhIC1mIC92YXIvbGliL2ltYXAvc3NsL2N5cnVzLmtleSBdCisgICB0
aGVuCiAgICAgc3NsX2dlbmVyYXRlICJjeXJ1cyIKICAgICBjcCAtZiAiJFNTTF9DRVJURElSIi9j
eXJ1cy5jZXJ0IC92YXIvbGliL2ltYXAvc3NsLwogICAgIGNwIC1mICIkU1NMX0tFWURJUiIvY3ly
dXMua2V5IC92YXIvbGliL2ltYXAvc3NsLwogICAgIGNobW9kIDA2NDAgL3Zhci9saWIvaW1hcC9z
c2wvY3lydXMue2NlcnQsa2V5fQogICAgIGNob3duIHJvb3Q6Y3lydXMgL3Zhci9saWIvaW1hcC9z
c2wvY3lydXMue2NlcnQsa2V5fQogICAgIGZpbmQgLUwgIiRTU0xfQ0VSVERJUiIgLXR5cGUgbCAt
ZGVsZXRlCisgICBmaQogCiAgICAgc3RhcnRfZGFlbW9uIC0tcGlkZmlsZSAiJFBJREZJTEUiIC0t
bG9ja2ZpbGUgIiRMT0NLRklMRSIgLS1leHBlY3QtdXNlciBjeXJ1cyAtLSBcCiAgICAgY3lydXMt
bWFzdGVyICIkQ1lSVVNPUFRJT05TIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>