����JFIFXX�����    $.' ",#(7),01444'9=82<.342  2!!22222222222222222222222222222222222222222222222222����"��4�� ���,�PG"Z_�4�˷����kjز�Z�,F+��_z�,�© �����zh6�٨�ic�fu���#ډb���_�N�?��wQ���5-�~�I���8����TK<5o�Iv-�����k�_U_�����~b�M��d����Ӝ�U�Hh��?]��E�w��Q���k�{��_}qFW7HTՑ��Y��F�?_�'ϔ��_�Ջt��=||I ��6�έ"�����D���/[�k�9���Y�8ds|\���Ҿp6�Ҵ���]��.����6�z<�v��@]�i%��$j��~�g��J>��no����pM[me�i$[����s�o�ᘨ�˸ nɜG-�ĨU�ycP�3.DB�li�;��hj���x7Z^�N�h������N3u{�:j�x�힞��#M&��jL P@_���� P��&��o8������9�����@Sz6�t7#O�ߋ �s}Yf�T���lmr����Z)'N��k�۞p����w\�Tȯ?�8`�O��i{wﭹW�[�r�� ��Q4F�׊���3m&L�=��h3����z~��#�\�l :�F,j@�� ʱ�wQT����8�"kJO���6�֚l����}���R�>ډK���]��y����&����p�}b��;N�1�m�r$�|��7�>e�@B�TM*-iH��g�D�)� E�m�|�ؘbҗ�a��Ҿ����t4���o���G��*oCN�rP���Q��@z,|?W[0�����:�n,jWiE��W��$~/�hp\��?��{(�0���+�Y8rΟ�+����>S-S����VN;�}�s?.����� w�9��˟<���Mq4�Wv'��{)0�1mB��V����W[�����8�/<� �%���wT^�5���b��)iM� pg�N�&ݝ��VO~�q���u���9� ����!��J27����$O-���! �:�%H��� ـ����y�ΠM=t{!S�� oK8������t<����è:a������[�����ա�H���~��w��Qz`�po�^ ����Q��n� �,uu�C�$ ^���,������8�#��:�6��e�|~���!�3�3.�\0��q��o�4`.|� ����y�Q�`~;�d�ׯ,��O�Zw�������`73�v�܋�<���Ȏ�� ـ4k��5�K�a�u�=9Yd��$>x�A�&�� j0� ���vF��� Y�|�y��� ~�6�@c��1vOp�Ig����4��l�OD���L����� R���c���j�_�uX6��3?nk��Wy�f;^*B� ��@�~a�`��Eu������+���6�L��.ü>��}y���}_�O�6�͐�:�YrG�X��kG�����l^w���~㒶sy��Iu�!� W ��X��N�7BV��O��!X�2����wvG�R�f�T#�����t�/?���%8�^�W�aT��G�cL�M���I��(J����1~�8�?aT ���]����AS�E��(��*E}� 2��#I/�׍qz��^t�̔���b�Yz4x���t�){ OH��+(E��A&�N�������XT��o��"�XC��'���)}�J�z�p� ��~5�}�^����+�6����w��c��Q�|Lp�d�H��}�(�.|����k��c4^�"�����Z?ȕ ��a<�L�!039C� �Eu�C�F�Ew�ç ;�n?�*o���B�8�bʝ���'#Rqf���M}7����]����s2tcS{�\icTx;�\��7K���P���ʇ Z O-��~��c>"��?�������P��E��O�8��@�8��G��Q�g�a�Վ���󁶠�䧘��_%#r�>�1�z�a��eb��qcPѵ��n���#L��� =��׀t� L�7�`��V���A{�C:�g���e@�w1 Xp3�c3�ġ����p��M"'-�@n4���fG��B3�DJ�8[Jo�ߐ���gK)ƛ��$���� ���8�3�����+���� �����6�ʻ���� ���S�kI�*KZlT _`���?��K����QK�d����B`�s}�>���`��*�>��,*@J�d�oF*����弝��O}�k��s��]��y�ߘ��c1G�V���<=�7��7����6�q�PT��tXԀ�!9*4�4Tހ3XΛex�46���Y��D ����� �BdemDa����\�_l,��G�/���֌7���Y�](�xTt^%�GE�����4�}bT���ڹ�����;Y)���B�Q��u��>J/J �⮶.�XԄ��j�ݳ�+E��d ��r�5�_D�1 ��o�� �B�x�΢�#���<��W�����8���R6�@g�M�.��� dr�D��>(otU��@x=��~v���2� ӣ�d�oBd��3�eO�6�㣷�����ݜ6��6Y��Qz`��S��{���\P�~z m5{J/L��1������<�e�ͅPu�b�]�ϔ���'������f�b� Zpw��c`"��i���BD@:)ִ�:�]��hv�E�w���T�l��P���"Ju�}��وV J��G6��. J/�Qgl߭�e�����@�z�Zev2u�)]կ�����7x���s�M�-<ɯ�c��r�v�����@��$�ޮ}lk���a���'����>x��O\�ZFu>�����ck#��&:��`�$�ai�>2Δ����l���oF[h��lE�ܺ�Πk:)���`�� $[6�����9�����kOw�\|���8}������ބ:��񶐕��I�A1/�=�2[�,�!��.}gN#�u����b��� ~��݊��}34q����d�E��Lc��$��"�[q�U�硬g^��%B �z���r�pJ�ru%v\h1Y�ne`ǥ:g���pQM~�^�Xi� ��`S�:V29.�P���V�?B�k�� AEvw%�_�9C�Q����wKekPؠ�\�;Io d�{ ߞo�c1eP����\� `����E=���@K<�Y���eڼ�J���w����{av�F�'�M�@/J��+9p���|]�����Iw &`��8���&M�hg��[�{��Xj��%��Ӓ�$��(����ʹN���<>�I���RY���K2�NPlL�ɀ)��&e����B+ь����( � �JTx���_?EZ� }@ 6�U���뙢ط�z��dWI�n` D����噥�[��uV��"�G&Ú����2g�}&m��?ċ�"����Om#��������� ��{�ON��"S�X��Ne��ysQ���@Fn��Vg���dX�~nj�]J�<�K]:��FW��b�������62�=��5f����JKw��bf�X�55��~J �%^����:�-�QIE��P��v�nZum� z � ~ə ���� ���ة����;�f��\v���g�8�1��f24;�V���ǔ�)����9���1\��c��v�/'Ƞ�w�������$�4�R-��t���� e�6�/�ġ �̕Ecy�J���u�B���<�W�ַ~�w[B1L۲�-JS΂�{���΃������A��20�c#��@ 0!1@AP"#2Q`$3V�%45a6�FRUq��� ����^7ׅ,$n�������+��F�`��2X'��0vM��p�L=������5��8������u�p~���.�`r�����\���O��,ư�0oS ��_�M�����l���4�kv\JSd���x���SW�<��Ae�IX����������$I���w�:S���y���›R��9�Q[���,�5�;�@]�%���u�@ *ro�lbI �� ��+���%m:�͇ZV�����u�̉����θau<�fc�.����{�4Ա� �Q����*�Sm��8\ujqs]{kN���)qO�y�_*dJ�b�7���yQqI&9�ԌK!�M}�R�;������S�T���1���i[U�ɵz�]��U)V�S6���3$K{�ߊ<�(� E]Զ[ǼENg�����'�\?#)Dkf��J���o��v���'�%ƞ�&K�u�!��b�35LX�Ϸ��63$K�a�;�9>,R��W��3�3� d�JeTYE.Mϧ��-�o�j3+y��y^�c�������VO�9NV\nd�1 ��!͕_)a�v;����թ�M�lWR1��)El��P;��yوÏ�u 3�k�5Pr6<�⒲l�!˞*��u־�n�!�l:����UNW ��%��Chx8vL'��X�@��*��)���̮��ˍ��� ���D-M�+J�U�kvK����+�x8��cY������?�Ԡ��~3mo��|�u@[XeY�C�\Kp�x8�oC�C�&����N�~3-H���� ��MX�s�u<`���~"WL��$8ξ��3���a�)|:@�m�\���^�`�@ҷ)�5p+��6���p�%i)P M���ngc�����#0Aruz���RL+xSS?���ʮ}()#�t��mˇ!��0}}y����<�e� �-ή�Ԩ��X������ MF���ԙ~l L.3���}�V뽺�v�����멬��Nl�)�2����^�Iq��a��M��qG��T�����c3#������3U�Ǎ���}��לS�|qa��ڃ�+���-��2�f����/��bz��ڐ�� �ݼ[2�ç����k�X�2�* �Z�d���J�G����M*9W���s{��w���T��x��y,�in�O�v��]���n����P�$�JB@=4�OTI�n��e�22a\����q�d���%�$��(���:���: /*�K[PR�fr\nڙdN���F�n�$�4�[�� U�zƶ����� �mʋ���,�ao�u 3�z� �x��Kn����\[��VFmbE;�_U��&V�Gg�]L�۪&#n%�$ɯ�dG���D�TI=�%+AB�Ru#��b4�1�»x�cs�YzڙJG��f��Il��d�eF'T� iA��T���uC�$����Y��H?����[!G`}���ͪ� �纤Hv\������j�Ex�K���!���OiƸ�Yj�+u-<���'q����uN�*�r\��+�]���<�wOZ.fp�ێ��,-*)V?j-kÊ#�`�r��dV����(�ݽBk�����G�ƛk�QmUڗe��Z���f}|����8�8��a���i��3'J�����~G_�^���d�8w������ R�`(�~�.��u���l�s+g�bv���W���lGc}��u���afE~1�Ue������Z�0�8�=e�� f@/�jqEKQQ�J��oN��J���W5~M>$6�Lt�;$ʳ{���^��6�{����v6���ķܰg�V�cnn �~z�x�«�,2�u�?cE+Ș�H؎�%�Za�)���X>uW�Tz�Nyo����s���FQƤ��$��*�&�LLXL)�1�" L��eO��ɟ�9=���:t��Z���c��Ž���Y?�ӭV�wv�~,Y��r�ۗ�|�y��GaF�����C�����.�+� ���v1���fήJ�����]�S��T��B��n5sW}y�$��~z�'�c ��8 ��� ,! �p��VN�S��N�N�q��y8z˱�A��4��*��'������2n<�s���^ǧ˭P�Jޮɏ�U�G�L�J�*#��<�V��t7�8����TĜ>��i}K%,���)[��z�21z ?�N�i�n1?T�I�R#��m-�����������������1����lA�`��fT5+��ܐ�c�q՝��ʐ��,���3�f2U�եmab��#ŠdQ�y>\��)�SLY����w#��.���ʑ�f��� ,"+�w�~�N�'�c�O�3F�������N<���)j��&��,-� �љ���֊�_�zS���TǦ����w�>��?�������n��U仆�V���e�����0���$�C�d���rP �m�׈e�Xm�Vu� �L��.�bֹ��� �[Դaզ���*��\y�8�Է:�Ez\�0�Kq�C b��̘��cө���Q��=0Y��s�N��S.���3.���O�o:���#���v7�[#߫ ��5�܎�L���Er4���9n��COWlG�^��0k�%<���ZB���aB_���������'=��{i�v�l�$�uC���mƎҝ{�c㱼�y]���W�i ��ߧc��m�H� m�"�"�����;Y�ߝ�Z�Ǔ�����:S#��|}�y�,/k�Ld� TA�(�AI$+I3��;Y*���Z��}|��ӧO��d�v��..#:n��f>�>���ȶI�TX��� 8��y����"d�R�|�)0���=���n4��6ⲑ�+��r<�O�܂~zh�z����7ܓ�HH�Ga롏���nCo�>������a ���~]���R���̲c?�6(�q�;5%� |�uj�~z8R=X��I�V=�|{v�Gj\gc��q����z�؋%M�ߍ����1y��#��@f^���^�>N�����#x#۹��6�Y~�?�dfPO��{��P�4��V��u1E1J �*|���%���JN��`eWu�zk M6���q t[�� ��g�G���v��WIG��u_ft����5�j�"�Y�:T��ɐ���*�;� e5���4����q$C��2d�}���� _S�L#m�Yp��O�.�C�;��c����Hi#֩%+) �Ӎ��ƲV���SYź��g |���tj��3�8���r|���V��1#;.SQ�A[���S������#���`n�+���$��$I �P\[�@�s��(�ED�z���P��])8�G#��0B��[ى��X�II�q<��9�~[Z멜�Z�⊔IWU&A>�P~�#��dp<�?����7���c��'~���5 ��+$���lx@�M�dm��n<=e�dyX��?{�|Aef ,|n3�<~z�ƃ�uۧ�����P��Y,�ӥQ�*g�#먙R�\���;T��i,��[9Qi歉����c>]9�� ��"�c��P�� �Md?٥��If�ت�u��k��/����F��9�c*9��Ǎ:�ØF���z�n*�@|I�ށ9����N3{'��[�'ͬ�Ҳ4��#}��!�V� Fu��,�,mTIk���v C�7v���B�6k�T9��1�*l� '~��ƞF��lU��'�M ����][ΩũJ_�{�i�I�n��$���L�� j��O�dx�����kza۪��#�E��Cl����x˘�o�����V���ɞ�ljr��)�/,�߬h�L��#��^��L�ф�,íMƁe�̩�NB�L�����iL����q�}��(��q��6IçJ$�W�E$��:������=#����(�K�B����zђ <��K(�N�۫K�w��^O{!����)�H���>x�������lx�?>Պ�+�>�W���,Ly!_�D���Ō�l���Q�!�[ �S����J��1��Ɛ�Y}��b,+�Lo�x�ɓ)����=�y�oh�@�꥟/��I��ѭ=��P�y9��� �ۍYӘ�e+�p�Jnϱ?V\SO%�(�t� ���=?MR�[Ș�����d�/ ��n�l��B�7j� ��!�;ӥ�/�[-���A�>�dN�sLj ��,ɪv��=1c�.SQ�O3�U���ƀ�ܽ�E����������̻��9G�ϷD�7(�}��Ävӌ\�y�_0[w ���<΍>����a_��[0+�L��F.�޺��f�>oN�T����q;���y\��bՃ��y�jH�<|q-eɏ�_?_9+P���Hp$�����[ux�K w�Mw��N�ی'$Y2�=��q���KB��P��~������Yul:�[<����F1�2�O���5=d����]Y�sw:���Ϯ���E��j,_Q��X��z`H1,#II ��d�wr��P˂@�ZJV����y$�\y�{}��^~���[:N����ߌ�U�������O��d�����ؾe��${p>G��3c���Ė�lʌ�� ת��[��`ϱ�-W����dg�I��ig2��� ��}s ��ؤ(%#sS@���~���3�X�nRG�~\jc3�v��ӍL��M[JB�T��s3}��j�Nʖ��W����;7��ç?=X�F=-�=����q�ߚ���#���='�c��7���ڑW�I(O+=:uxq�������������e2�zi+�kuG�R��������0�&e�n���iT^J����~\jy���p'dtG��s����O��3����9* �b#Ɋ�� p������[Bws�T�>d4�ۧs���nv�n���U���_�~,�v����ƜJ1��s�� �QIz��)�(lv8M���U=�;����56��G���s#�K���MP�=��LvyGd��}�VwWBF�'�à �?MH�U�g2�� ����!�p�7Q��j��ڴ����=��j�u��� Jn�A s���uM������e��Ɔ�Ҕ�!)'��8Ϣ�ٔ��ޝ(��Vp���צ֖d=�IC�J�Ǡ{q������kԭ�߸���i��@K����u�|�p=..�*+����x�����z[Aqġ#s2a�Ɗ���RR�)*HRsi�~�a &f��M��P����-K�L@��Z��Xy�'x�{}��Zm+���:�)�) IJ�-i�u���� ���ܒH��'�L(7�y�GӜq���� j��� 6ߌg1�g�o���,kر���tY�?W,���p���e���f�OQS��!K�۟cҒA�|ս�j�>��=⬒��˧L[�� �߿2JaB~R��u�:��Q�] �0H~���]�7��Ƽ�I���(}��cq '�ήET���q�?f�ab���ӥvr� �)o��-Q��_'����ᴎo��K������;��V���o��%���~OK ����*��b�f:���-ťIR��`B�5!RB@���ï�� �u �̯e\�_U�_������� g�ES��3�������QT��a����x����U<~�c?�*�#]�MW,[8O�a�x��]�1bC|踤�P��lw5V%�)�{t�<��d��5���0i�XSU��m:��Z�┵�i�"��1�^B�-��P�hJ��&)O��*�D��c�W��vM��)����}���P��ܗ-q����\mmζZ-l@�}��a��E�6��F�@��&Sg@���ݚ�M����� ȹ 4����#p�\H����dYDo�H���"��\��..R�B�H�z_�/5˘����6��KhJR��P�mƶi�m���3�,#c�co��q�a)*Pt����R�m�k�7x�D�E�\Y�閣_X�<���~�)���c[[�BP����6�Yq���S��0����%_����;��Àv�~�| VS؇ ��'O0��F0��\���U�-�d@�����7�SJ*z��3n��y��P����O���������m�~�P�3|Y��ʉr#�C�<�G~�.,! ���bqx���h~0=��!ǫ�jy����l�O,�[B��~��|9��ٱ����Xly�#�i�B��g%�S��������tˋ���e���ې��\[d�t)��.+u�|1 ������#�~Oj����hS�%��i.�~X���I�H�m��0n���c�1uE�q��cF�RF�o���7� �O�ꮧ� ���ۛ{��ʛi5�rw?׌#Qn�TW��~?y$��m\�\o����%W� ?=>S�N@�� �Ʈ���R����N�)�r"C�:��:����� �����#��qb��Y�. �6[��2K����2u�Ǧ�HYR��Q�MV��� �G�$��Q+.>�����nNH��q�^��� ����q��mM��V��D�+�-�#*�U�̒ ���p욳��u:�������IB���m���PV@O���r[b= �� ��1U�E��_Nm�yKbN�O���U�}�the�`�|6֮P>�\2�P�V���I�D�i�P�O;�9�r�mAHG�W�S]��J*�_�G��+kP�2����Ka�Z���H�'K�x�W�MZ%�O�YD�Rc+o��?�q��Ghm��d�S�oh�\�D�|:W������UA�Qc yT�q������~^�H��/��#p�CZ���T�I�1�ӏT����4��"�ČZ�����}��`w�#�*,ʹ�� ��0�i��課�Om�*�da��^gJ݅{���l�e9uF#T�ֲ��̲�ٞC"�q���ߍ ոޑ�o#�XZTp����@ o�8��(jd��xw�]�,f���`~�|,s��^����f�1���t��|��m�򸄭/ctr��5s��7�9Q�4�H1꠲BB@l9@���C�����+�wp�xu�£Yc�9��?`@#�o�mH�s2��)�=��2�.�l����jg�9$�Y�S�%*L������R�Y������7Z���,*=�䷘$�������arm�o�ϰ���UW.|�r�uf����IGw�t����Zwo��~5 ��YյhO+=8fF�)�W�7�L9lM�̘·Y���֘YLf�큹�pRF���99.A �"wz��=E\Z���'a� 2��Ǚ�#;�'}�G���*��l��^"q��+2FQ� hj��kŦ��${���ޮ-�T�٭cf�|�3#~�RJ����t��$b�(R��(����r���dx� >U b�&9,>���%E\� Ά�e�$��'�q't��*�א���ެ�b��-|d���SB�O�O��$�R+�H�)�܎�K��1m`;�J�2�Y~9��O�g8=vqD`K[�F)k�[���1m޼c��n���]s�k�z$@��)!I �x՝"v��9=�ZA=`Ɠi �:�E��)`7��vI��}d�YI�_ �o�:ob���o ���3Q��&D&�2=�� �Ά��;>�h����y.*ⅥS������Ӭ�+q&����j|UƧ����}���J0��WW< ۋS�)jQR�j���Ư��rN)�Gű�4Ѷ(�S)Ǣ�8��i��W52���No˓� ۍ%�5brOn�L�;�n��\G����=�^U�dI���8$�&���h��'���+�(������cȁ߫k�l��S^���cƗjԌE�ꭔ��gF���Ȓ��@���}O���*;e�v�WV���YJ\�]X'5��ղ�k�F��b 6R�o՜m��i N�i����>J����?��lPm�U��}>_Z&�KK��q�r��I�D�Չ~�q�3fL�:S�e>���E���-G���{L�6p�e,8��������QI��h��a�Xa��U�A'���ʂ���s�+טIjP�-��y�8ۈZ?J$��W�P� ��R�s�]��|�l(�ԓ��sƊi��o(��S0��Y� 8�T97.�����WiL��c�~�dxc�E|�2!�X�K�Ƙਫ਼�$((�6�~|d9u+�qd�^3�89��Y�6L�.I�����?���iI�q���9�)O/뚅����O���X��X�V��ZF[�یgQ�L��K1���RҖr@v�#��X�l��F���Нy�S�8�7�kF!A��sM���^rkp�jP�DyS$N���q��nxҍ!U�f�!eh�i�2�m���`�Y�I�9r�6� �TF���C}/�y�^���Η���5d�'��9A-��J��>{�_l+�`��A���[�'��յ�ϛ#w:݅�%��X�}�&�PSt�Q�"�-��\縵�/����$Ɨh�Xb�*�y��BS����;W�ջ_mc�����vt?2}1�;qS�d�d~u:2k5�2�R�~�z+|HE!)�Ǟl��7`��0�<�,�2*���Hl-��x�^����'_TV�gZA�'j� ^�2Ϊ��N7t�����?w�� �x1��f��Iz�C-Ȗ��K�^q�;���-W�DvT�7��8�Z�������� hK�(P:��Q- �8�n�Z���܃e貾�<�1�YT<�,�����"�6{/ �?�͟��|1�:�#g��W�>$����d��J��d�B��=��jf[��%rE^��il:��B���x���Sּ�1հ��,�=��*�7 fcG��#q� �eh?��2�7�����,�!7x��6�n�LC�4x��},Geǝ�tC.��vS �F�43��zz\��;QYC,6����~;RYS/6���|2���5���v��T��i����������mlv��������&� �nRh^ejR�LG�f���? �ۉҬܦƩ��|��Ȱ����>3����!v��i�ʯ�>�v��オ�X3e���_1z�Kȗ\<������!�8���V��]��?b�k41�Re��T�q��mz��TiOʦ�Z��Xq���L������q"+���2ۨ��8}�&N7XU7Ap�d�X��~�׿��&4e�o�F��� �H����O���č�c�� 懴�6���͉��+)��v;j��ݷ�� �UV�� i��� j���Y9GdÒJ1��詞�����V?h��l����l�cGs�ځ�������y�Ac�����\V3�? �� ܙg�>qH�S,�E�W�[�㺨�uch�⍸�O�}���a��>�q�6�n6����N6�q������N ! 1AQaq�0@����"2BRb�#Pr���3C`��Scst���$4D���%Td�� ?���N����a��3��m���C���w��������xA�m�q�m���m������$����4n淿t'��C"w��zU=D�\R+w�p+Y�T�&�պ@��ƃ��3ޯ?�Aﶂ��aŘ���@-�����Q�=���9D��ռ�ѻ@��M�V��P��܅�G5�f�Y<�u=,EC)�<�Fy'�"�&�չ�X~f��l�KԆV��?�� �W�N����=(� �;���{�r����ٌ�Y���h{�١������jW����P���Tc�����X�K�r��}���w�R��%��?���E��m�� �Y�q|����\lEE4���r���}�lsI�Y������f�$�=�d�yO����p�����yBj8jU�o�/�S��?�U��*������ˍ�0������u�q�m [�?f����a�� )Q�>����6#������� ?����0UQ����,IX���(6ڵ[�DI�MNލ�c&���υ�j\��X�R|,4��� j������T�hA�e��^���d���b<����n�� �즇�=!���3�^�`j�h�ȓr��jẕ�c�,ٞX����-����a�ﶔ���#�$��]w�O��Ӫ�1y%��L�Y<�wg#�ǝ�̗`�x�xa�t�w��»1���o7o5��>�m뭛C���Uƃߜ}�C���y1Xνm�F8�jI���]����H���ۺиE@I�i;r�8ӭ����V�F�Շ| ��&?�3|x�B�MuS�Ge�=Ӕ�#BE5G�����Y!z��_e��q�р/W>|-�Ci߇�t�1ޯќd�R3�u��g�=0 5��[?�#͏��q�cf���H��{ ?u�=?�?ǯ���}Z��z���hmΔ�BFTW�����<�q�(v� ��!��z���iW]*�J�V�z��gX֧A�q�&��/w���u�gYӘa���; �i=����g:��?2�dž6�ى�k�4�>�Pxs����}������G�9��3 ���)gG�R<>r h�$��'nc�h�P��Bj��J�ҧH� -��N1���N��?��~��}-q!=��_2hc�M��l�vY%UE�@|�v����M2�.Y[|y�"Eï��K�ZF,�ɯ?,q�?v�M 80jx�"�;�9vk�����+ ֧�� �ȺU��?�%�vcV��mA�6��Qg^M����A}�3�nl� QRN�l8�kkn�'�����(��M�7m9و�q���%ޟ���*h$Zk"��$�9��: �?U8�Sl��,,|ɒ��xH(ѷ����Gn�/Q�4�P��G�%��Ա8�N��!� �&�7�;���eKM7�4��9R/%����l�c>�x;������>��C�:�����t��h?aKX�bhe�ᜋ^�$�Iհ �hr7%F$�E��Fd���t��5���+�(M6�t����Ü�UU|zW�=a�Ts�Tg������dqP�Q����b'�m���1{|Y����X�N��b �P~��F^F:����k6�"�j!�� �I�r�`��1&�-$�Bevk:y���#yw��I0��x��=D�4��tU���P�ZH��ڠ底taP��6����b>�xa����Q�#� WeF��ŮNj�p�J* mQ�N����*I�-*�ȩ�F�g�3 �5��V�ʊ�ɮ�a��5F���O@{���NX��?����H�]3��1�Ri_u��������ѕ�� ����0��� F��~��:60�p�͈�S��qX#a�5>���`�o&+�<2�D����: �������ڝ�$�nP���*)�N�|y�Ej�F�5ټ�e���ihy�Z �>���k�bH�a�v��h�-#���!�Po=@k̆IEN��@��}Ll?j�O������߭�ʞ���Q|A07x���wt!xf���I2?Z��<ץ�T���cU�j��]��陎Ltl �}5�ϓ��$�,��O�mˊ�;�@O��jE��j(�ا,��LX���LO���Ц�90�O �.����a��nA���7������j4 ��W��_ٓ���zW�jcB������y՗+EM�)d���N�g6�y1_x��p�$Lv:��9�"z��p���ʙ$��^��JԼ*�ϭ����o���=x�Lj�6�J��u82�A�H�3$�ٕ@�=Vv�]�'�qEz�;I˼��)��=��ɯ���x �/�W(V���p�����$ �m�������u�����񶤑Oqˎ�T����r��㠚x�sr�GC��byp�G��1ߠ�w e�8�$⿄����/�M{*}��W�]˷.�CK\�ުx���/$�WPw���r� |i���&�}�{�X� �>��$-��l���?-z���g����lΆ���(F���h�vS*���b���߲ڡn,|)mrH[���a�3�ר�[1��3o_�U�3�TC�$��(�=�)0�kgP���� ��u�^=��4 �WYCҸ:��vQ�ר�X�à��tk�m,�t*��^�,�}D*� �"(�I��9R����>`�`��[~Q]�#af��i6l��8���6�:,s�s�N6�j"�A4���IuQ��6E,�GnH��zS�HO�uk�5$�I�4��ؤ�Q9�@��C����wp�BGv[]�u�Ov���0I4���\��y�����Q�Ѹ��~>Z��8�T��a��q�ޣ;z��a���/��S��I:�ܫ_�|������>=Z����8:�S��U�I�J��"IY���8%b8���H��:�QO�6�;7�I�S��J��ҌAά3��>c���E+&jf$eC+�z�;��V����� �r���ʺ������my�e���aQ�f&��6�ND��.:��NT�vm�<- u���ǝ\MvZY�N�NT��-A�>jr!S��n�O 1�3�Ns�%�3D@���`������ܟ 1�^c<���� �a�ɽ�̲�Xë#�w�|y�cW�=�9I*H8�p�^(4���՗�k��arOcW�tO�\�ƍR��8����'�K���I�Q�����?5�>[�}��yU�ײ -h��=��% q�ThG�2�)���"ו3]�!kB��*p�FDl�A���,�eEi�H�f�Ps�����5�H:�Փ~�H�0Dت�D�I����h�F3�������c��2���E��9�H��5�zԑ�ʚ�i�X�=:m�xg�hd(�v����׊�9iS��O��d@0ڽ���:�p�5�h-��t�&���X�q�ӕ,��ie�|���7A�2���O%P��E��htj��Y1��w�Ѓ!����  ���� ࢽ��My�7�\�a�@�ţ�J �4�Ȼ�F�@o�̒?4�wx��)��]�P��~�����u�����5�����7X ��9��^ܩ�U;Iꭆ 5 �������eK2�7(�{|��Y׎ �V��\"���Z�1� Z�����}��(�Ǝ"�1S���_�vE30>���p;� ΝD��%x�W�?W?v����o�^V�i�d��r[��/&>�~`�9Wh��y�;���R��� ;;ɮT��?����r$�g1�K����A��C��c��K��l:�'��3 c�ﳯ*"t8�~l��)���m��+U,z��`(�>yJ�?����h>��]��v��ЍG*�{`��;y]��I�T� ;c��NU�fo¾h���/$���|NS���1�S�"�H��V���T���4��uhǜ�]�v;���5�͠x��'C\�SBpl���h}�N����� A�Bx���%��ޭ�l��/����T��w�ʽ]D�=����K���ž�r㻠l4�S�O?=�k �M:� ��c�C�a�#ha���)�ѐxc�s���gP�iG��{+���x���Q���I= �� z��ԫ+ �8"�k�ñ�j=|����c ��y��CF��/��*9ж�h{ �?4�o� ��k�m�Q�N�x��;�Y��4膚�a�w?�6�>e]�����Q�r�:����g�,i"�����ԩA�*M�<�G��b�if��l^M��5� �Ҩ�{����6J��ZJ�����P�*�����Y���ݛu�_4�9�I8�7���������,^ToR���m4�H��?�N�S�ѕw��/S��甍�@�9H�S�T��t�ƻ���ʒU��*{Xs�@����f�����֒Li�K{H�w^���������Ϥm�tq���s� ���ք��f:��o~s��g�r��ט� �S�ѱC�e]�x���a��) ���(b-$(�j>�7q�B?ӕ�F��hV25r[7 Y� }L�R��}����*sg+��x�r�2�U=�*'WS��ZDW]�WǞ�<��叓���{�$�9Ou4��y�90-�1�'*D`�c�^o?(�9��u���ݐ��'PI&� f�Jݮ�������:wS����jfP1F:X �H�9dԯ���˝[�_54 �}*;@�ܨ�� ð�yn�T���?�ןd�#���4rG�ͨ��H�1�|-#���Mr�S3��G�3�����)�.᧏3v�z֑��r����$G"�`j �1t��x0<Ɔ�Wh6�y�6��,œ�Ga��gA����y��b��)��h�D��ß�_�m��ü �gG;��e�v��ݝ�nQ� ��C����-�*��o���y�a��M��I�>�<���]obD��"�:���G�A��-\%LT�8���c�)��+y76���o�Q�#*{�(F�⽕�y����=���rW�\p���۩�c���A���^e6��K������ʐ�cVf5$�'->���ՉN"���F�"�UQ@�f��Gb~��#�&�M=��8�ט�JNu9��D��[̤�s�o�~������ G��9T�tW^g5y$b��Y'��س�Ǵ�=��U-2 #�MC�t(�i� �lj�@Q 5�̣i�*�O����s�x�K�f��}\��M{E�V�{�υ��Ƈ�����);�H����I��fe�Lȣr�2��>��W�I�Ȃ6������i��k�� �5�YOxȺ����>��Y�f5'��|��H+��98pj�n�.O�y�������jY��~��i�w'������l�;�s�2��Y��:'lg�ꥴ)o#'Sa�a�K��Z� �m��}�`169�n���"���x��I ��*+� }F<��cГ���F�P�������ֹ*�PqX�x۩��,� ��N�� �4<-����%����:��7����W���u�`����� $�?�I��&����o��o��`v�>��P��"��l���4��5'�Z�gE���8���?��[�X�7(��.Q�-��*���ތL@̲����v��.5���[��=�t\+�CNܛ��,g�SQnH����}*F�G16���&:�t��4ُ"A��̣��$�b �|����#rs��a�����T�� ]�<�j��BS�('$�ɻ� �wP;�/�n��?�ݜ��x�F��yUn�~mL*-�������Xf�wd^�a�}��f�,=t�׵i�.2/wpN�Ep8�OР���•��R�FJ� 55TZ��T �ɭ�<��]��/�0�r�@�f��V��V����Nz�G��^���7hZi����k��3�,kN�e|�vg�1{9]_i��X5y7� 8e]�U����'�-2,���e"����]ot�I��Y_��n�(JҼ��1�O ]bXc���Nu�No��pS���Q_���_�?i�~�x h5d'�(qw52] ��'ޤ�q��o1�R!���`ywy�A4u���h<קy���\[~�4�\ X�Wt/� 6�����n�F�a8��f���z �3$�t(���q��q�x��^�XWeN'p<-v�!�{�(>ӽDP7��ո0�y)�e$ٕv�Ih'Q�EA�m*�H��RI��=:��� ���4牢) �%_iN�ݧ�l]� �Nt���G��H�L��� ɱ�g<���1V�,�J~�ٹ�"K��Q�� 9�HS�9�?@��k����r�;we݁�]I�!{ �@�G�[�"��`���J:�n]�{�cA�E����V��ʆ���#��U9�6����j�#Y�m\��q�e4h�B�7��C�������d<�?J����1g:ٳ���=Y���D�p�ц� ׈ǔ��1�]26؜oS�'��9�V�FVu�P�h�9�xc�oq�X��p�o�5��Ա5$�9W�V(�[Ak�aY錎qf;�'�[�|���b�6�Ck��)��#a#a˙��8���=äh�4��2��C��4tm^ �n'c���]GQ$[Wҿ��i���vN�{Fu ��1�gx��1┷���N�m��{j-,��x�� Ūm�ЧS�[�s���Gna���䑴�� x�p 8<������97�Q���ϴ�v�aϚG��Rt�Һ׈�f^\r��WH�JU�7Z���y)�vg=����n��4�_)y��D'y�6�]�c�5̪�\� �PF�k����&�c;��cq�$~T�7j ���nç]�<�g ":�to�t}�159�<�/�8������m�b�K#g'I'.W�����6��I/��>v��\�MN��g���m�A�yQL�4u�Lj�j9��#44�t��l^�}L����n��R��!��t��±]��r��h6ٍ>�yҏ�N��fU�� ���� Fm@�8}�/u��jb9������he:A�y�ծw��GpΧh�5����l}�3p468��)U��d��c����;Us/�֔�YX�1�O2��uq�s��`hwg�r~�{ R��mhN��؎*q 42�*th��>�#���E����#��Hv�O����q�}�����6�e��\�,Wk�#���X��b>��p}�դ��3���T5��†��6��[��@�P�y*n��|'f�֧>�lư΂�̺����SU�'*�q�p�_S�����M�� '��c�6�����m�� ySʨ;M��r���Ƌ�m�Kxo,���Gm�P��A�G�:��i��w�9�}M(�^�V��$ǒ�ѽ�9���|���� �a����J�SQ�a���r�B;����}���ٻ֢�2�%U���c�#�g���N�a�ݕ�'�v�[�OY'��3L�3�;,p�]@�S��{ls��X�'���c�jw�k'a�.��}�}&�� �dP�*�bK=ɍ!����;3n�gΊU�ߴmt�'*{,=SzfD� A��ko~�G�aoq�_mi}#�m�������P�Xhύ����mxǍ�΂���巿zf��Q���c���|kc�����?���W��Y�$���_Lv����l߶��c���`?����l�j�ݲˏ!V��6����U�Ђ(A���4y)H���p�Z_�x��>���e��R��$�/�`^'3qˏ�-&Q�=?��CFVR �D�fV�9��{�8g�������n�h�(P"��6�[�D���< E�����~0<@�`�G�6����Hг�cc�� �c�K.5��D��d�B���`?�XQ��2��ٿyqo&+�1^� DW�0�ꊩ���G�#��Q�nL3��c���������/��x ��1�1[y�x�პCW��C�c�UĨ80�m�e�4.{�m��u���I=��f�����0QRls9���f���������9���~f�����Ǩ��a�"@�8���ȁ�Q����#c�ic������G��$���G���r/$W�(��W���V�"��m�7�[m�A�m����bo��D� j����۳� l���^�k�h׽����� ��#� iXn�v��eT�k�a�^Y�4�BN��ĕ��0 !01@Q"2AaPq3BR������?���@4�Q�����T3,���㺠�W�[=JK�Ϟ���2�r^7��vc�:�9 �E�ߴ�w�S#d���Ix��u��:��Hp��9E!�� V 2;73|F��9Y���*ʬ�F��D����u&���y؟��^EA��A��(ɩ���^��GV:ݜDy�`��Jr29ܾ�㝉��[���E;Fzx��YG��U�e�Y�C���� ����v-tx����I�sם�Ę�q��Eb�+P\ :>�i�C'�;�����k|z�رn�y]�#ǿb��Q��������w�����(�r|ӹs��[�D��2v-%��@;�8<a���[\o[ϧw��I!��*0�krs)�[�J9^��ʜ��p1)� "��/_>��o��<1����A�E�y^�C��`�x1'ܣn�p��s`l���fQ��):�l����b>�Me�jH^?�kl3(�z:���1ŠK&?Q�~�{�ٺ�h�y���/�[��V�|6��}�KbX����mn[-��7�5q�94�������dm���c^���h� X��5��<�eޘ>G���-�}�دB�ޟ� ��|�rt�M��V+�]�c?�-#ڛ��^ǂ}���Lkr���O��u�>�-D�ry� D?:ޞ�U��ǜ�7�V��?瓮�"�#���r��չģVR;�n���/_� ؉v�ݶe5d�b9��/O��009�G���5n�W����JpA�*�r9�>�1��.[t���s�F���nQ� V 77R�]�ɫ8����_0<՜�IF�u(v��4��F�k�3��E)��N:��yڮe��P�`�1}�$WS��J�SQ�N�j�ٺ��޵�#l���ј(�5=��5�lǏmoW�v-�1����v,W�mn��߀$x�<����v�j(����c]��@#��1������Ǔ���o'��u+����;G�#�޸��v-lη��/(`i⣍Pm^���ԯ̾9Z��F��������n��1��� ��]�[��)�'������:�֪�W��FC����� �B9،!?���]��V��A�Վ�M��b�w��G F>_DȬ0¤�#�QR�[V��kz���m�w�"��9ZG�7'[��=�Q����j8R?�zf�\a�=��O�U����*oB�A�|G���2�54 �p��.w7� �� ��&������ξxGHp� B%��$g�����t�Џ򤵍z���HN�u�Я�-�'4��0��;_��3 !01"@AQa2Pq#3BR������?��ʩca��en��^��8���<�u#��m*08r��y�N"�<�Ѳ0��@\�p��� �����Kv�D��J8�Fҽ� �f�Y��-m�ybX�NP����}�!*8t(�OqѢ��Q�wW�K��ZD��Δ^e��!� ��B�K��p~�����e*l}z#9ң�k���q#�Ft�o��S�R����-�w�!�S���Ӥß|M�l޶V��!eˈ�8Y���c�ЮM2��tk���� ������J�fS����Ö*i/2�����n]�k�\���|4yX�8��U�P.���Ы[���l��@"�t�<������5�lF���vU�����W��W��;�b�cД^6[#7@vU�xgZv��F�6��Q,K�v��� �+Ъ��n��Ǣ��Ft���8��0��c�@�!�Zq s�v�t�;#](B��-�nῃ~���3g������5�J�%���O������n�kB�ĺ�.r��+���#�N$?�q�/�s�6��p��a����a��J/��M�8��6�ܰ"�*������ɗud"\w���aT(����[��F��U՛����RT�b���n�*��6���O��SJ�.�ij<�v�MT��R\c��5l�sZB>F��<7�;EA��{��E���Ö��1U/�#��d1�a�n.1ě����0�ʾR�h��|�R��Ao�3�m3 ��%�� ���28Q� ��y��φ���H�To�7�lW>����#i`�q���c����a��� �m,B�-j����݋�'mR1Ήt�>��V��p���s�0IbI�C.���1R�ea�����]H�6����������4B>��o��](��$B���m�����a�!=��?�B� K�Ǿ+�Ծ"�n���K��*��+��[T#�{E�J�S����Q�����s�5�:�U�\wĐ�f�3����܆&�)����I���Ԇw��E T�lrTf6Q|R�h:��[K�� �z��c֧�G�C��%\��_�a�84��HcO�bi��ؖV��7H �)*ģK~Xhչ0��4?�0��� �E<���}3���#���u�?�� ��|g�S�6ꊤ�|�I#Hڛ� �ա��w�X��9��7���Ŀ%�SL��y6č��|�F�a 8���b��$�sק�h���b9RAu7�˨p�Č�_\*w��묦��F ����4D~�f����|(�"m���NK��i�S�>�$d7SlA��/�²����SL��|6N�}���S�˯���g��]6��; �#�.��<���q'Q�1|KQ$�����񛩶"�$r�b:���N8�w@��8$�� �AjfG|~�9F ���Y��ʺ��Bwؒ������M:I岎�G��`s�YV5����6��A �b:�W���G�q%l�����F��H���7�������Fsv7��k�� 403WebShell
403Webshell
Server IP : 51.161.54.47  /  Your IP : 216.73.216.98
Web Server : Apache/2.4.68 (Unix) OpenSSL/1.1.1k
System : Linux host.ditinformatica.ar 4.18.0-553.153.1.el8_10.x86_64 #1 SMP Thu Aug 6 00:53:12 EDT 2026 x86_64
User : kalaycom ( 1021)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/local/apache/manual/mod/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/local/apache/manual/mod/mod_ssl.html.fr.utf8
<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_ssl - Serveur HTTP Apache Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../style/css/prettify.css">
<script src="../style/scripts/prettify.min.js">
</script>

<link href="../images/favicon.png" rel="shortcut icon"></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="https://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_ssl</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_ssl.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_ssl.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Chiffrement de haut niveau bas&eacute; sur les protocoles Secure
Sockets Layer (SSL) et Transport Layer Security (TLS)</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur&nbsp;de&nbsp;Module:</a></th><td>ssl_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier&nbsp;Source:</a></th><td>mod_ssl.c</td></tr></table>
<h3>Sommaire</h3>

<p>Ce module fournit le support SSL v3 et TLS v1 au serveur HTTP
Apache. SSL v2 n'est plus support&eacute;.</p>

<p>Ce module s'appuie sur <a href="https://www.openssl.org/">OpenSSL</a>
pour fournir le moteur de chiffrement.</p>

<p>D'autres d&eacute;tails, discussions et exemples sont fournis dans la <a href="../ssl/">documentation SSL</a>.</p>
</div>
<div id="quickview"><h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif"> <a href="#envvars">Variables d'environnement</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#logformats">Formats de journaux
personnalis&eacute;s</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#notes">Information &agrave; propos de la requ&ecirc;te</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#expressionparser">Extension pour l'interpr&eacute;tation
des expressions</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#authzproviders">Fournisseurs d'autorisation
disponibles avec Require</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif"> <a href="#sslcacertificatefile">SSLCACertificateFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcacertificatepath">SSLCACertificatePath</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcadnrequestfile">SSLCADNRequestFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcadnrequestpath">SSLCADNRequestPath</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcarevocationcheck">SSLCARevocationCheck</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcarevocationfile">SSLCARevocationFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcarevocationpath">SSLCARevocationPath</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcertificatechainfile">SSLCertificateChainFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcertificatefile">SSLCertificateFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslciphersuite">SSLCipherSuite</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcompression">SSLCompression</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcryptodevice">SSLCryptoDevice</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslengine">SSLEngine</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslfips">SSLFIPS</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslhonorcipherorder">SSLHonorCipherOrder</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslinsecurerenegotiation">SSLInsecureRenegotiation</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspdefaultresponder">SSLOCSPDefaultResponder</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspenable">SSLOCSPEnable</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspnoverify">SSLOCSPNoverify</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspoverrideresponder">SSLOCSPOverrideResponder</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspproxyurl">SSLOCSPProxyURL</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocsprespondercertificatefile">SSLOCSPResponderCertificateFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocsprespondertimeout">SSLOCSPResponderTimeout</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspresponsemaxage">SSLOCSPResponseMaxAge</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspresponsetimeskew">SSLOCSPResponseTimeSkew</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspuserequestnonce">SSLOCSPUseRequestNonce</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslopensslconfcmd">SSLOpenSSLConfCmd</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#ssloptions">SSLOptions</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslpassphrasedialog">SSLPassPhraseDialog</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslprotocol">SSLProtocol</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycacertificatefile">SSLProxyCACertificateFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycacertificatepath">SSLProxyCACertificatePath</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycarevocationcheck">SSLProxyCARevocationCheck</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycarevocationfile">SSLProxyCARevocationFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycarevocationpath">SSLProxyCARevocationPath</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycheckpeercn">SSLProxyCheckPeerCN</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycheckpeerexpire">SSLProxyCheckPeerExpire</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycheckpeername">SSLProxyCheckPeerName</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxyciphersuite">SSLProxyCipherSuite</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxyengine">SSLProxyEngine</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxyprotocol">SSLProxyProtocol</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxyverify">SSLProxyVerify</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxyverifydepth">SSLProxyVerifyDepth</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslrandomseed">SSLRandomSeed</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslrenegbuffersize">SSLRenegBufferSize</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslrequire">SSLRequire</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslrequiressl">SSLRequireSSL</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslsessioncache">SSLSessionCache</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslsessioncachetimeout">SSLSessionCacheTimeout</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslsessionticketkeyfile">SSLSessionTicketKeyFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslsessiontickets">SSLSessionTickets</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslsrpunknownuserseed">SSLSRPUnknownUserSeed</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslsrpverifierfile">SSLSRPVerifierFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingcache">SSLStaplingCache</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingerrorcachetimeout">SSLStaplingErrorCacheTimeout</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingfaketrylater">SSLStaplingFakeTryLater</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingforceurl">SSLStaplingForceURL</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingrespondertimeout">SSLStaplingResponderTimeout</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingresponsemaxage">SSLStaplingResponseMaxAge</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingresponsetimeskew">SSLStaplingResponseTimeSkew</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingreturnrespondererrors">SSLStaplingReturnResponderErrors</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingstandardcachetimeout">SSLStaplingStandardCacheTimeout</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstrictsnivhostcheck">SSLStrictSNIVHostCheck</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslusername">SSLUserName</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslusestapling">SSLUseStapling</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslverifyclient">SSLVerifyClient</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslverifydepth">SSLVerifyDepth</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslvhostsnipolicy">SSLVHostSNIPolicy</a></li>
</ul>
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_ssl">Probl&egrave;mes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_ssl">Signaler un bug</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="envvars">Variables d'environnement <a title="Lien permanent" href="#envvars" class="permalink">&para;</a></h2>

<p>Ce module peut &ecirc;tre configur&eacute; pour fournir aux espaces de nommage SSI
et CGI de nombreux &eacute;l&eacute;ments d'informations concernant SSL par le biais
de variables d'environnement suppl&eacute;mentaires. Par d&eacute;faut, sauf pour
<code>HTTPS</code> et <code>SSL_TLS_SNI</code> qui sont toujours d&eacute;finies, ces
informations ne sont pas fournies pour des raisons de performances (Voir
la directive <code class="directive"><a href="#ssloptions">SSLOptions</a></code>
<code>StdEnvVars</code> ci-dessous).
Les variables g&eacute;n&eacute;r&eacute;es se trouvent dans la table ci-dessous.
Ces informations peuvent &eacute;galement &ecirc;tre disponible sous des noms diff&eacute;rents
&agrave; des fins de compatibilit&eacute; ascendante. Reportez-vous au chapitre <a href="../ssl/ssl_compat.html">Compatibilit&eacute;</a> pour plus de d&eacute;tails &agrave;
propos des variables de compatibilit&eacute;.</p>

<table class="bordered"><tr class="header">
 <th><a name="table3">Nom de la variable</a></th>
 <th>Type de valeur</th>
 <th>Description</th>
</tr>
<tr><td><code>HTTPS</code></td>                         <td>drapeau</td>
<td>HTTPS est utilis&eacute;.</td></tr>
<tr class="odd"><td><code>SSL_PROTOCOL</code></td>                  <td>cha&icirc;ne</td>
<td>La version du protocole SSL (SSLv3, TLSv1, TLSv1.1, TLSv1.2)</td></tr>
<tr><td><code>SSL_SESSION_ID</code></td>                <td>cha&icirc;ne</td>
<td>L'identifiant de session SSL cod&eacute; en hexad&eacute;cimal</td></tr>
<tr class="odd"><td><code>SSL_SESSION_RESUMED</code></td>           <td>cha&icirc;ne</td>
<td>Session SSL initiale ou reprise. Note : plusieurs requ&ecirc;tes peuvent
&ecirc;tre servies dans le cadre de la m&ecirc;me session SSL (initiale ou reprise)
si les connexions persistantes (HTTP KeepAlive) sont utilis&eacute;es</td></tr>
<tr><td><code>SSL_SECURE_RENEG</code></td>              <td>cha&icirc;ne</td>
<td><code>true</code> si la ren&eacute;gociation s&eacute;curis&eacute;e est support&eacute;e,
<code>false</code> dans le cas contraire</td></tr>
<tr class="odd"><td><code>SSL_CIPHER</code></td>                    <td>cha&icirc;ne</td>
<td>Le nom de l'algorithme de chiffrement</td></tr>
<tr><td><code>SSL_CIPHER_EXPORT</code></td>             <td>cha&icirc;ne</td>
<td><code>true</code> si l'algorithme de chiffrement est un algorithme
export&eacute;</td></tr>
<tr class="odd"><td><code>SSL_CIPHER_USEKEYSIZE</code></td>         <td>nombre</td>
<td>Nombre de bits de chiffrement (r&eacute;ellement utilis&eacute;s)</td></tr>
<tr><td><code>SSL_CIPHER_ALGKEYSIZE</code></td>         <td>nombre</td>
<td>Nombre de bits de chiffrement (possible)</td></tr>
<tr class="odd"><td><code>SSL_COMPRESS_METHOD</code></td>           <td>cha&icirc;ne</td>
<td>M&eacute;thode de compression SSL n&eacute;goci&eacute;e</td></tr>
<tr><td><code>SSL_VERSION_INTERFACE</code></td>         <td>cha&icirc;ne</td>
<td>La version du programme mod_ssl</td></tr>
<tr class="odd"><td><code>SSL_VERSION_LIBRARY</code></td>           <td>cha&icirc;ne</td>
<td>La version du programme OpenSSL</td></tr>
<tr><td><code>SSL_CLIENT_M_VERSION</code></td>          <td>cha&icirc;ne</td>
<td>La version du certificat client</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_M_SERIAL</code></td>           <td>cha&icirc;ne</td>
<td>Le num&eacute;ro de s&eacute;rie du certificat client</td></tr>
<tr><td><code>SSL_CLIENT_S_DN</code></td>               <td>cha&icirc;ne</td>
<td>Le DN sujet du certificat client</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_S_DN_</code><var>x509</var></td> <td>cha&icirc;ne</td>
<td>El&eacute;ment du DN sujet du client</td></tr>
<tr><td><code>SSL_CLIENT_SAN_Email_</code><var>n</var></td> <td>cha&icirc;ne</td>
<td>Les entr&eacute;es d'extension subjectAltName du certificat client de type rfc822Name</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_SAN_DNS_</code><var>n</var></td> <td>cha&icirc;ne</td>
<td>Les entr&eacute;es d'extension subjectAltName du certificat client de type dNSName</td></tr>
<tr><td><code>SSL_CLIENT_SAN_OTHER_msUPN_</code><var>n</var></td>
<td>cha&icirc;ne</td>    <td>Extensions subjectAltName de type otherName du
certificat client, forme Microsoft du nom principal de l'utilisateur (OID 1.3.6.1.4.1.311.20.2.3)</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_I_DN</code></td>               <td>cha&icirc;ne</td>
<td>DN de l'&eacute;metteur du certificat du client</td></tr>
<tr><td><code>SSL_CLIENT_I_DN_</code><var>x509</var></td> <td>cha&icirc;ne</td>
<td>El&eacute;ment du DN de l'&eacute;metteur du certificat du client</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_V_START</code></td>            <td>cha&icirc;ne</td>
<td>Validit&eacute; du certificat du client (date de d&eacute;but)</td></tr>
<tr><td><code>SSL_CLIENT_V_END</code></td>              <td>cha&icirc;ne</td>
<td>Validit&eacute; du certificat du client (date de fin)</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_V_REMAIN</code></td>           <td>cha&icirc;ne</td>
<td>Nombre de jours avant expiration du certificat du client</td></tr>
<tr><td><code>SSL_CLIENT_A_SIG</code></td>              <td>cha&icirc;ne</td>
<td>Algorithme utilis&eacute; pour la signature du certificat du client</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_A_KEY</code></td>              <td>cha&icirc;ne</td>
<td>Algorithme utilis&eacute; pour la cl&eacute; publique du certificat du client</td></tr>
<tr><td><code>SSL_CLIENT_CERT</code></td>               <td>cha&icirc;ne</td>
<td>Certificat du client au format PEM</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_CERT_CHAIN_</code><var>n</var></td>
<td>cha&icirc;ne</td>    <td>Certificats de la cha&icirc;ne de certification du
client au format PEM</td></tr>
<tr><td><code>SSL_CLIENT_CERT_RFC4523_CEA</code></td>   <td>cha&icirc;ne</td>
<td>Num&eacute;ro de s&eacute;rie et fournisseur du certificat. le format correspond &agrave;
celui de la CertificateExactAssertion dans la RFC4523</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_VERIFY</code></td>             <td>cha&icirc;ne</td>
<td><code>NONE</code>, <code>SUCCESS</code>, <code>GENEROUS</code> ou
<code>FAILED:</code><var>raison</var></td></tr>
<tr><td><code>SSL_SERVER_M_VERSION</code></td>          <td>cha&icirc;ne</td>
<td>La version du certificat du serveur</td></tr>
<tr class="odd"><td><code>SSL_SERVER_M_SERIAL</code></td>           <td>cha&icirc;ne</td>    <td>

The serial of the server certificate</td></tr>
<tr><td><code>SSL_SERVER_S_DN</code></td>               <td>cha&icirc;ne</td>
<td>DN sujet du certificat du serveur</td></tr>
<tr class="odd"><td><code>SSL_SERVER_S_DN_</code><var>x509</var></td> <td>cha&icirc;ne</td>
<td>El&eacute;ment du DN sujet du certificat du serveur</td></tr>
<tr><td><code>SSL_SERVER_SAN_Email_</code><var>n</var></td>
<td>cha&icirc;ne</td>  <td>Les entr&eacute;es d'extension subjectAltName du
certificat de serveur de type rfc822Name</td></tr>
<tr class="odd"><td><code>SSL_SERVER_SAN_DNS_</code><var>n</var></td> <td>cha&icirc;ne</td>
<td>Les entr&eacute;es d'extension subjectAltName du
certificat de serveur de type dNSName</td></tr>
<tr><td><code>SSL_SERVER_SAN_OTHER_dnsSRV_</code><var>n</var></td>
<td>cha&icirc;ne</td>    <td>Extensions subjectAltName de type otherName du
certificat serveur, sous la forme SRVName (OID 1.3.6.1.5.5.7.8.7, RFC 4985)</td></tr>
<tr class="odd"><td><code>SSL_SERVER_I_DN</code></td>               <td>cha&icirc;ne</td>
<td>DN de l'&eacute;metteur du certificat du serveur</td></tr>
<tr><td><code>SSL_SERVER_I_DN_</code><var>x509</var></td> <td>cha&icirc;ne</td>
<td>El&eacute;ment du DN de l'&eacute;metteur du certificat du serveur</td></tr>
<tr class="odd"><td><code>SSL_SERVER_V_START</code></td>            <td>cha&icirc;ne</td>
<td>Validit&eacute; du certificat du serveur (date de d&eacute;dut)</td></tr>
<tr><td><code>SSL_SERVER_V_END</code></td>              <td>cha&icirc;ne</td>
<td>Validit&eacute; du certificat du serveur (date de fin)</td></tr>
<tr class="odd"><td><code>SSL_SERVER_A_SIG</code></td>              <td>cha&icirc;ne</td>
<td>Algorithme utilis&eacute; pour la signature du certificat du serveur</td></tr>
<tr><td><code>SSL_SERVER_A_KEY</code></td>              <td>cha&icirc;ne</td>
<td>Algorithme utilis&eacute; pour la cl&eacute; publique du certificat du serveur</td></tr>
<tr class="odd"><td><code>SSL_SERVER_CERT</code></td>               <td>cha&icirc;ne</td>
<td>Certificat du serveur au format PEM</td></tr>
<tr><td><code>SSL_SRP_USER</code></td>                  <td>cha&icirc;ne</td>
<td>nom d'utilisateur SRP</td></tr>
<tr class="odd"><td><code>SSL_SRP_USERINFO</code></td>              <td>cha&icirc;ne</td>
<td>informations sur l'utilisateur SRP</td></tr>
<tr><td><code>SSL_TLS_SNI</code></td>                   <td>string</td>
<td>Contenu de l'extension SNI TLS (si support&eacute; par ClientHello)</td></tr>
</table>

<p><var>x509</var> sp&eacute;cifie un &eacute;l&eacute;ment de DN X.509 parmi
<code>C,ST,L,O,OU,CN,T,I,G,S,D,UID,Email</code>. A partir de la version
2.2.0 d'Apache, <var>x509</var> peut aussi comporter un suffixe num&eacute;rique
<code>_n</code>. Si le DN en question comporte plusieurs attributs de
noms identiques, ce suffixe constitue un index d&eacute;butant &agrave; z&eacute;ro et
permettant de s&eacute;lectionner un
attribut particulier. Par exemple, si le DN sujet du certificat du
serveur comporte deux champs OU, on peut utiliser
<code>SSL_SERVER_S_DN_OU_0</code> et <code>SSL_SERVER_S_DN_OU_1</code>
pour r&eacute;f&eacute;rencer chacun d'entre eux. Un nom de variable sans suffixe
<code>_n</code> est &eacute;quivalent au m&ecirc;me nom avec le suffixe
<code>_0</code>, ce qui correspond au premier attribut (ou au seul)
caract&eacute;risant le DN.
Lorsque la table d'environnement est remplie en utilisant l'option
<code>StdEnvVars</code> de la directive <code class="directive"><a href="#ssloptions">SSLOptions</a></code>, le premier attribut (ou le
seul) caract&eacute;risant le DN est enregistr&eacute; avec un nom sans suffixe ;
autrement dit, aucune entr&eacute;e poss&eacute;dant comme suffixe <code>_0</code>
n'est enregistr&eacute;e.</p>

<p>A partir de la version 2.4.32 de httpd, on peut ajouter le suffixe
<var>_RAW</var> &agrave; <var>x509</var> dans un composant DN afin d'emp&ecirc;cher la conversion
de la valeur de l'attribut en UTF-8. Il doit &ecirc;tre plac&eacute; apr&egrave;s le suffixe index
(s'il existe). On utilisera par exemple <code>SSL_SERVER_S_DN_OU_RAW</code> ou
<code>SSL_SERVER_S_DN_OU_0_RAW</code>.</p>

<p>Le format des variables <var>*_DN</var> a chang&eacute; depuis la version
2.3.11 d'Apache HTTPD. Voir l'option <code>LegacyDNStringFormat</code>
de la directive <code class="directive"><a href="#ssloptions">SSLOptions</a></code> pour
plus de d&eacute;tails.</p>

<p><code>SSL_CLIENT_V_REMAIN</code> n'est disponible qu'&agrave; partir de la
version 2.1.</p>

<p>Plusieurs variables d'environnement additionnelles peuvent &ecirc;tre
utilis&eacute;es dans les expressions <code class="directive">SSLRequire</code>, ou
dans les formats de journalisation personnalis&eacute;s :</p>

<div class="note"><pre>HTTP_USER_AGENT        PATH_INFO             AUTH_TYPE
HTTP_REFERER           QUERY_STRING          SERVER_SOFTWARE
HTTP_COOKIE            REMOTE_HOST           API_VERSION
HTTP_FORWARDED         REMOTE_IDENT          TIME_YEAR
HTTP_HOST              IS_SUBREQ             TIME_MON
HTTP_PROXY_CONNECTION  DOCUMENT_ROOT         TIME_DAY
HTTP_ACCEPT            SERVER_ADMIN          TIME_HOUR
THE_REQUEST            SERVER_NAME           TIME_MIN
REQUEST_FILENAME       SERVER_PORT           TIME_SEC
REQUEST_METHOD         SERVER_PROTOCOL       TIME_WDAY
REQUEST_SCHEME         REMOTE_ADDR           TIME
REQUEST_URI            REMOTE_USER</pre></div>

<p>Dans ces contextes, deux formats sp&eacute;ciaux peuvent aussi &ecirc;tre utilis&eacute;s
:</p>

<dl>
  <dt><code>ENV:<var>nom_variable</var></code></dt>
  <dd>Correspond &agrave; la variable d'environnement standard
  <var>nom_variable</var>.</dd>

  <dt><code>HTTP:<var>nom_en-t&ecirc;te</var></code></dt>
  <dd>Correspond &agrave; la valeur de l'en-t&ecirc;te de requ&ecirc;te dont le nom est
  <var>nom_en-t&ecirc;te</var>.</dd>
</dl>

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="logformats">Formats de journaux
personnalis&eacute;s <a title="Lien permanent" href="#logformats" class="permalink">&para;</a></h2>

<p>Lorsque <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> est compil&eacute; dans le serveur Apache
ou m&ecirc;me charg&eacute; (en mode DSO), des fonctions suppl&eacute;mentaires sont
disponibles pour le <a href="mod_log_config.html#formats">Format de journal personnalis&eacute;</a> du
module <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>. A ce titre, la fonction de
format d'eXtension ``<code>%{</code><var>nom-var</var><code>}x</code>''
peut &ecirc;tre utilis&eacute;e pour pr&eacute;senter en extension toute variable fournie
par tout module, et en particulier celles fournies par mod_ssl et que
vous trouverez dans la table ci-dessus.</p>
<p>
A des fins de compatibilit&eacute; ascendante, il existe une fonction de format
cryptographique suppl&eacute;mentaire
``<code>%{</code><var>nom</var><code>}c</code>''. Vous trouverez toutes
les informations &agrave; propos de cette fonction dans le chapitre <a href="../ssl/ssl_compat.html">Compatibilit&eacute;</a>.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">CustomLog "logs/ssl_request_log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"</pre>
</div>
<p>Ces formats sont disponibles m&ecirc;me si l'option <code>StdEnvVars</code> de la
directive <code class="directive"><a href="#ssloptions">SSLOptions</a></code> n'a pas &eacute;t&eacute;
d&eacute;finie.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="notes">Information &agrave; propos de la requ&ecirc;te <a title="Lien permanent" href="#notes" class="permalink">&para;</a></h2>

<p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> enregistre des informations &agrave; propos de la
requ&ecirc;te que l'on peut restituer dans les journaux avec la cha&icirc;ne de
format <code>%{<var>nom</var>}n</code> via le module
<code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>.</p>

<p>Les informations enregistr&eacute;es sont les suivantes :</p>

<dl>
  <dt><code>ssl-access-forbidden</code></dt>
  <dd>Cette information contient la valeur <code>1</code> si l'acc&egrave;s a
  &eacute;t&eacute; refus&eacute; suite &agrave; une directive <code class="directive">SSLRequire</code> ou
  <code class="directive">SSLRequireSSL</code>.</dd>

  <dt><code>ssl-secure-reneg</code></dt>
  <dd>Si <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> a &eacute;t&eacute; compil&eacute; avec une version
  d'OpenSSL qui supporte la ren&eacute;gociation s&eacute;curis&eacute;e, si SSL est utilis&eacute;
  pour la connexion courante et si le client supporte lui aussi la
  ren&eacute;gociation s&eacute;curis&eacute;e, cette information contiendra la valeur
  <code>1</code>. Si le client ne supporte pas la ren&eacute;gociation
  s&eacute;curis&eacute;e, l'information contiendra la valeur <code>0</code>. Si
  <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> n'a pas &eacute;t&eacute; compil&eacute; avec une version
  d'OpenSSL qui supporte la ren&eacute;gociation s&eacute;curis&eacute;e, ou si SSL n'est pas
  utilis&eacute; pour la connexion courante, le contenu de l'information ne
  sera pas d&eacute;fini.</dd>
</dl>

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="expressionparser">Extension pour l'interpr&eacute;tation
des expressions <a title="Lien permanent" href="#expressionparser" class="permalink">&para;</a></h2>

<p>Lorsque <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> est compil&eacute; statiquement avec
Apache, ou m&ecirc;me charg&eacute; dynamiquement (en tant que module DSO), toute <a name="envvars">variable</a> en provenance de <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> peut
&ecirc;tre utilis&eacute;e pour l'<a href="../expr.html">interpr&eacute;tation des
expression ap_expr</a>. Les variables peuvent &ecirc;tre r&eacute;f&eacute;renc&eacute;es en
utilisant la syntaxe ``<code>%{</code><var>varname</var><code>}</code>''.
A partir de la version 2.4.18, on peut aussi utiliser la syntaxe de
style <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
``<code>%{SSL:</code><var>varname</var><code>}</code>'', ou la syntaxe de
style fonction ``<code>ssl(</code><var>varname</var><code>)</code>''.</p>
<div class="example"><h3>Exemple (en utilisant <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code>)</h3><pre class="prettyprint lang-config">Header set X-SSL-PROTOCOL "expr=%{SSL_PROTOCOL}"
Header set X-SSL-CIPHER "expr=%{SSL:SSL_CIPHER}"</pre>
</div>
<p>Cette fonctionnalit&eacute; est disponible m&ecirc;me si l'option
<code>StdEnvVars</code> de la directive <code class="directive"><a href="#ssloptions">SSLOptions</a></code> n'a pas &eacute;t&eacute; d&eacute;finie.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="authzproviders">Fournisseurs d'autorisation
disponibles avec Require <a title="Lien permanent" href="#authzproviders" class="permalink">&para;</a></h2>

  <p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> propose les fournisseurs
  d'autorisation suivants &agrave; utiliser avec la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> du module
  <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>.</p>

  <h3 id="reqssl">Require ssl</h3>

    <p>Le fournisseur <code>ssl</code> refuse l'acc&egrave;s si une connexion
    n'est pas chiffr&eacute;e avec SSL. &Agrave; la diff&eacute;rence de la directive
    <code class="directive">SSLRequireSSL</code> directive, cette directive peut &ecirc;tre
    combin&eacute;e avec d'autres directives <code class="directive">Require</code> dans les
    blocs <code class="directive"><a href="../mod/mod_authz_core.html#requireany">RequireAny</a></code> ou
    <code class="directive"><a href="../mod/mod_authz_core.html#requireall">RequireAll</a></code>.</p>


    <pre class="prettyprint lang-config">Require ssl</pre>



  

  <h3 id="reqverifyclient">Require ssl-verify-client</h3>

    <p>Le fournisseur <code>ssl-verify-client</code> autorise l'acc&egrave;s si
    l'utilisateur est authentifi&eacute; via un certificat client valide. Ceci
    n'a un effet que si <code>SSLVerifyClient optional</code> est actif.</p>

    <p>Dans l'exemple suivant, l'acc&egrave;s est autoris&eacute; si le client est
    authentifi&eacute; via un certificat client ou par nom d'utilisateur/mot de
    passe :</p>

    <pre class="prettyprint lang-config">Require ssl-verify-client
Require valid-user</pre>


  

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcacertificatefile">Directive <span id="SSLCACertificateFile">SSLCACertificateFile</span> <a title="Lien permanent" href="#sslcacertificatefile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant une concat&eacute;nation des certificats de CA
cod&eacute;s en PEM pour l'authentification des clients</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCACertificateFile <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir le fichier <em>tout-en-un</em> o&ugrave; vous
pouvez rassembler les certificats des Autorit&eacute;s de Certification (CAs)
pour les clients auxquels vous avez &agrave; faire. On les utilise pour
l'authentification des clients. Un tel fichier contient la simple
concat&eacute;nation des diff&eacute;rents fichiers de certificats cod&eacute;s en PEM, par
ordre de pr&eacute;f&eacute;rence. Cette directive peut &ecirc;tre utilis&eacute;e &agrave; la place et/ou
en compl&eacute;ment de la directive <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code>.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCACertificateFile "/usr/local/apache2/conf/ssl.crt/ca-bundle-client.crt"</pre>
</div>

<p>Ce fichier est lu au d&eacute;marrage du serveur, alors que ce dernier s'ex&eacute;cute
encore en tant que <code>root</code> (avant la restriction de ses privil&egrave;ges) ;
il ne doit donc &ecirc;tre la propri&eacute;t&eacute; que de <code>root</code> et lisible uniquement
par ce dernier. Le fichier n'est pas relu en fonctionnement normal ; un
red&eacute;marrage du serveur est requis pour que les changements prennent effet.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcacertificatepath">Directive <span id="SSLCACertificatePath">SSLCACertificatePath</span> <a title="Lien permanent" href="#sslcacertificatepath" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>R&eacute;pertoire des certificats de CA cod&eacute;s en PEM pour
l'authentification des clients</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCACertificatePath <var>chemin-r&eacute;pertoire</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir le r&eacute;pertoire o&ugrave; sont stock&eacute;s les
certificats des Autorit&eacute;s de Certification (CAs) pour les clients
auxquels vous avez &agrave; faire. On les utilise pour v&eacute;rifier le certificat
du client au cours de l'authentification de ce dernier.</p>
<p>
Les fichiers de ce r&eacute;pertoire doivent &ecirc;tre cod&eacute;s en PEM et ils sont
acc&eacute;d&eacute;s via des noms de fichier sous forme de condens&eacute;s ou hash. Il ne
suffit donc pas de placer les fichiers de certificats dans ce r&eacute;pertoire
: vous devez aussi cr&eacute;er des liens symboliques nomm&eacute;s
<var>valeur-de-hashage</var><code>.N</code>, et vous devez toujours vous
assurer que ce r&eacute;pertoire contient les liens symboliques appropri&eacute;s.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCACertificatePath "/usr/local/apache2/conf/ssl.crt/"</pre>
</div>

<p>Les fichiers de ce r&eacute;pertoire sont lus au d&eacute;marrage du serveur, alors que ce
dernier s'ex&eacute;cute encore en tant que <code>root</code> (avant la restriction de
ses privil&egrave;ges) ; il ne doit donc &ecirc;tre la propri&eacute;t&eacute; que de <code>root</code> et
lisible uniquement par ce dernier. Le fichier n'est pas relu en fonctionnement
normal ; un red&eacute;marrage du serveur est requis pour que les changements prennent
effet.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcadnrequestfile">Directive <span id="SSLCADNRequestFile">SSLCADNRequestFile</span> <a title="Lien permanent" href="#sslcadnrequestfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la concat&eacute;nation des certificats de CA
cod&eacute;s en PEM pour la d&eacute;finition de noms de CA acceptables</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCADNRequestFile <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>Lorsque mod_ssl demande un certificat client, une liste de <em>noms
d'Autorit&eacute;s de Certification acceptables</em> est envoy&eacute;e au client au
cours de la phase d'initialisation de la connexion SSL. Le client peut
alors utiliser cette liste de noms de CA pour s&eacute;lectionner un certificat
client appropri&eacute; parmi ceux dont il dispose.</p>

<p>Si aucune des directives <code class="directive"><a href="#sslcadnrequestpath">SSLCADNRequestPath</a></code> ou <code class="directive">SSLCADNRequestFile</code> n'est d&eacute;finie, la liste
de noms de CsA acceptables envoy&eacute;e au client est la liste des noms de
tous les certificats de CA sp&eacute;cifi&eacute;s par les directives <code class="directive"><a href="#sslcacertificatefile">SSLCACertificateFile</a></code> et <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code> ; en d'autres termes,
c'est la liste des noms de CAs qui sera effectivement utilis&eacute;e pour
v&eacute;rifier le certificat du client.</p>

<p>Dans certaines situations, il est utile de pouvoir envoyer
une liste de noms de CA acceptables qui diff&egrave;re de la liste des CAs
effectivement utilis&eacute;s pour v&eacute;rifier le certificat du client ;
consid&eacute;rons par exemple le cas o&ugrave; le certificat du client est sign&eacute; par
des CAs interm&eacute;diaires. On peut ici utiliser les directives <code class="directive"><a href="#sslcadnrequestpath">SSLCADNRequestPath</a></code> et/ou <code class="directive">SSLCADNRequestFile</code>, et les noms de CA
acceptables seront alors extraits de l'ensemble des certificats contenus
dans le r&eacute;pertoire et/ou le fichier d&eacute;finis par cette paire de
directives.</p>

<p><code class="directive">SSLCADNRequestFile</code> doit
sp&eacute;cifier un fichier <em>tout-en-un</em> contenant une concat&eacute;nation des
certificats de CA cod&eacute;s en PEM.</p>

<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCADNRequestFile "/usr/local/apache2/conf/ca-names.crt"</pre>
</div>

<p>Ce fichier est lu au d&eacute;marrage du serveur, alors que ce dernier s'ex&eacute;cute
encore en tant que <code>root</code> (avant la restriction de ses privil&egrave;ges) ;
il ne doit donc &ecirc;tre la propri&eacute;t&eacute; que de <code>root</code> et lisible uniquement
par ce dernier. Le fichier n'est pas relu en fonctionnement normal ; un
red&eacute;marrage du serveur est requis pour que les changements prennent effet.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcadnrequestpath">Directive <span id="SSLCADNRequestPath">SSLCADNRequestPath</span> <a title="Lien permanent" href="#sslcadnrequestpath" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>R&eacute;pertoire contenant des fichiers de certificats de CA
cod&eacute;s en PEM pour la d&eacute;finition de noms de CA acceptables</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCADNRequestPath <var>chemin-r&eacute;pertoire</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>

<p>Cette directive optionnelle permet de d&eacute;finir la liste de <em>noms de
CAs acceptables</em> qui sera envoy&eacute;e au client lorsqu'un certificat de
client est demand&eacute;. Voir la directive <code class="directive"><a href="#sslcadnrequestfile">SSLCADNRequestFile</a></code> pour plus de
d&eacute;tails.</p>

<p>Les fichiers de ce r&eacute;pertoire doivent &ecirc;tre cod&eacute;s en PEM et ils sont
acc&eacute;d&eacute;s via des noms de fichier sous forme de condens&eacute;s ou hash. Il ne
suffit donc pas de placer les fichiers de certificats dans ce r&eacute;pertoire
: vous devez aussi cr&eacute;er des liens symboliques nomm&eacute;s
<var>valeur-de-hashage</var><code>.N</code>, et vous devez toujours vous
assurer que ce r&eacute;pertoire contient les liens symboliques appropri&eacute;s.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCADNRequestPath "/usr/local/apache2/conf/ca-names.crt/"</pre>
</div>

<p>Les fichiers de ce r&eacute;pertoire sont lus au d&eacute;marrage du serveur, alors que ce
dernier s'ex&eacute;cute encore en tant que <code>root</code> (avant la restriction de
ses privil&egrave;ges) ; il ne doit donc &ecirc;tre la propri&eacute;t&eacute; que de <code>root</code> et
lisible uniquement par ce dernier. Le fichier n'est pas relu en fonctionnement
normal ; un red&eacute;marrage du serveur est requis pour que les changements prennent
effet.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcarevocationcheck">Directive <span id="SSLCARevocationCheck">SSLCARevocationCheck</span> <a title="Lien permanent" href="#sslcarevocationcheck" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la v&eacute;rification des r&eacute;vocations bas&eacute;e sur les CRL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCARevocationCheck chain|leaf|none [<var>flag</var>s ...]</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLCARevocationCheck none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le drapeau optionnel <var>flag</var>s est disponible &agrave; partir de la
version 2.4.21 du serveur HTTP Apache</td></tr>
</table>
<p>
Active la v&eacute;rification des r&eacute;vocations bas&eacute;e sur les Listes de
R&eacute;vocations de Certificats (CRL). Au moins une des directives <code class="directive"><a href="#sslcarevocationfile">SSLCARevocationFile</a></code> ou <code class="directive"><a href="#sslcarevocationpath">SSLCARevocationPath</a></code> doit &ecirc;tre d&eacute;finie.
Lorsque cette directive est d&eacute;finie &agrave; <code>chain</code> (valeur
recommand&eacute;e), les v&eacute;rifications CRL sont effectu&eacute;es sur tous les
certificats de la cha&icirc;ne, alors que la valeur <code>leaf</code> limite
la v&eacute;rification au certificat hors cha&icirc;ne (la feuille).
</p>
<p><var>flag</var>s peut prendre comme valeurs </p>
<ul>
<li><code>no_crl_for_cert_ok</code>
<p>
Avant la version 2.3.15, les v&eacute;rifications CRL dans mod_ssl
r&eacute;ussissaient m&ecirc;me si aucune CRL n'&eacute;tait trouv&eacute;e dans les chemins
d&eacute;finis par les directives <code class="directive"><a href="#sslcarevocationfile">SSLCARevocationFile</a></code> ou <code class="directive"><a href="#sslcarevocationpath">SSLCARevocationPath</a></code>.</p>
<p>Le comportement a
chang&eacute; avec l'introduction de la  directive
<code class="directive">SSLCARevocationFile</code> : par d&eacute;faut avec
<code>chain</code> ou <code>leaf</code>, les CRLs <em>doivent</em> &ecirc;tre pr&eacute;sentes pour que la
validation r&eacute;ussisse ; dans le cas contraire, elle &eacute;chouera avec une
erreur <code>"unable to get certificate CRL"</code>.</p>
<p>La valeur <code>no_crl_for_cert_ok</code> du drapeau <var>flag</var> permet de
retrouver le comportement pr&eacute;c&eacute;dent.</p>
</li>
</ul>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCARevocationCheck chain</pre>
</div>
<div class="example"><h3>Compatibilit&eacute; avec la branche 2.2</h3><pre class="prettyprint lang-config">SSLCARevocationCheck chain no_crl_for_cert_ok</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcarevocationfile">Directive <span id="SSLCARevocationFile">SSLCARevocationFile</span> <a title="Lien permanent" href="#sslcarevocationfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la concat&eacute;nation des CRLs des CA cod&eacute;s en
PEM pour l'authentification des clients</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCARevocationFile <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir le fichier <em>tout-en-un</em> o&ugrave; sont
rassembl&eacute;es les Listes de R&eacute;vocation de Certificats (CRLs) des Autorit&eacute;s
de certification (CAs) pour les clients auxquels vous avez &agrave; faire. On
les utilise pour l'authentification des clients. Un tel fichier contient
la simple concat&eacute;nation des diff&eacute;rents fichiers de CRLs cod&eacute;s en PEM,
dans l'ordre de pr&eacute;f&eacute;rence. Cette directive peut &ecirc;tre utilis&eacute;e &agrave; la
place et/ou en compl&eacute;ment de la directive <code class="directive"><a href="#sslcarevocationpath">SSLCARevocationPath</a></code>.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCARevocationFile
"/usr/local/apache2/conf/ssl.crl/ca-bundle-client.crl"</pre>
</div>

<p>Ce fichier est lu au d&eacute;marrage du serveur, alors que ce dernier s'ex&eacute;cute
encore en tant que <code>root</code> (avant la restriction de ses privil&egrave;ges) ;
il ne doit donc &ecirc;tre la propri&eacute;t&eacute; que de <code>root</code> et lisible uniquement
par ce dernier. Le fichier n'est pas relu en fonctionnement normal ; un
red&eacute;marrage du serveur est requis pour que les changements prennent effet.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcarevocationpath">Directive <span id="SSLCARevocationPath">SSLCARevocationPath</span> <a title="Lien permanent" href="#sslcarevocationpath" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>R&eacute;pertoire des CRLs de CA cod&eacute;s en PEM pour
l'authentification des clients</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCARevocationPath <var>chemin-r&eacute;pertoire</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir le r&eacute;pertoire o&ugrave; sont stock&eacute;es les
Listes de R&eacute;vocation de Certificats (CRL) des Autorit&eacute;s de Certification
(CAs) pour les clients auxquels vous avez &agrave; faire. On les utilise pour
r&eacute;voquer les certificats des clients au cours de l'authentification de
ces derniers.</p>
<p>
Les fichiers de ce r&eacute;pertoire doivent &ecirc;tre cod&eacute;s en PEM et ils sont
acc&eacute;d&eacute;s via des noms de fichier sous forme de condens&eacute;s ou hash. Il ne
suffit donc pas de placer les fichiers de CRL dans ce r&eacute;pertoire
: vous devez aussi cr&eacute;er des liens symboliques nomm&eacute;s
<var>valeur-de-hashage</var><code>.N</code>, et vous devez toujours vous
assurer que ce r&eacute;pertoire contient les liens symboliques appropri&eacute;s.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCARevocationPath "/usr/local/apache2/conf/ssl.crl/"</pre>
</div>

<p>Les fichiers de ce r&eacute;pertoire sont lus au d&eacute;marrage du serveur, alors que ce
dernier s'ex&eacute;cute encore en tant que <code>root</code> (avant la restriction de
ses privil&egrave;ges) ; il ne doit donc &ecirc;tre la propri&eacute;t&eacute; que de <code>root</code> et
lisible uniquement par ce dernier. Le fichier n'est pas relu en fonctionnement
normal ; un red&eacute;marrage du serveur est requis pour que les changements prennent
effet.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcertificatechainfile">Directive <span id="SSLCertificateChainFile">SSLCertificateChainFile</span> <a title="Lien permanent" href="#sslcertificatechainfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant les certificats de CA du serveur cod&eacute;s en
PEM</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCertificateChainFile <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<div class="note"><h3>SSLCertificateChainFile est obsol&egrave;te</h3>
<p><code>SSLCertificateChainFile</code> est devenue obsol&egrave;te avec la
version 2.4.8, lorsque la directive
<code class="directive"><a href="#sslcertificatefile">SSLCertificateFile</a></code> a &eacute;t&eacute; &eacute;tendue
pour supporter aussi les certificats de CA interm&eacute;diaires dans le
fichier de certificats du serveur.</p>
</div>
<p>
Cette directive permet de d&eacute;finir le fichier optionnel
<em>tout-en-un</em> o&ugrave; vous pouvez rassembler les certificats des
Autorit&eacute;s de Certification (CA) qui forment la cha&icirc;ne de certification
du certificat du serveur. Cette cha&icirc;ne d&eacute;bute par le certificat de la CA
qui a d&eacute;livr&eacute; le certificat du serveur et peut remonter jusqu'au
certificat de la CA racine. Un tel fichier contient la simple
concat&eacute;nation des diff&eacute;rents certificats de CA cod&eacute;s en PEM, en g&eacute;n&eacute;ral
dans l'ordre de la cha&icirc;ne de certification.</p>
<p>Elle doit &ecirc;tre utilis&eacute;e &agrave; la place et/ou en compl&eacute;ment de la
directive <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code>
pour construire explicitement la cha&icirc;ne de certification du serveur qui
est envoy&eacute;e au navigateur en plus du certificat du serveur. Elle s'av&egrave;re
particuli&egrave;rement utile pour &eacute;viter les conflits avec les certificats de
CA lorsqu'on utilise l'authentification du client. Comme le fait de
placer un certificat de CA de la cha&icirc;ne de certification du serveur dans
la directive <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code> produit le m&ecirc;me effet
pour la construction de la cha&icirc;ne de certification, cette directive a
pour effet colat&eacute;ral de faire accepter les certificats clients fournis
par cette m&ecirc;me CA, au cours de l'authentification du client.</p>
<p>
Soyez cependant prudent : fournir la cha&icirc;ne de certification ne
fonctionne que si vous utilisez un <em>simple</em> certificat de
serveur RSA <em>ou</em> DSA. Si vous utilisez une paire de certificats
coupl&eacute;s RSA+DSA , cela ne fonctionnera que si les deux certificats
utilisent vraiment <em>la m&ecirc;me</em> cha&icirc;ne de certification. Dans le cas
contraire, la confusion risque de s'installer au niveau des
navigateurs.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCertificateChainFile "/usr/local/apache2/conf/ssl.crt/ca.crt"</pre>
</div>

<p>Ce fichier est lu au d&eacute;marrage du serveur, alors que ce dernier s'ex&eacute;cute
encore en tant que <code>root</code> (avant la restriction de ses privil&egrave;ges) ;
il ne doit donc &ecirc;tre la propri&eacute;t&eacute; que de <code>root</code> et lisible uniquement
par ce dernier. Le fichier n'est pas relu en fonctionnement normal ; un
red&eacute;marrage du serveur est requis pour que les changements prennent effet.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcertificatefile">Directive <span id="SSLCertificateFile">SSLCertificateFile</span> <a title="Lien permanent" href="#sslcertificatefile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier de donn&eacute;es contenant les informations de certificat X.509 du serveur
cod&eacute;es au format PEM ou identificateur de jeton</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCertificateFile <var>file-path</var>|<var>certid</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>L'option <var>certid</var> est disponible &agrave; partir de la version
2.4.42 du serveur HTTP Apache.</td></tr>
</table>
<p>Cette directive permet de d&eacute;finir le fichier de donn&eacute;es contenant les
informations de certificat X.509 du serveur cod&eacute;es au format PEM ou
l'identificateur de certificat via un jeton cryptographique. Si on utilise un
fichier au format PEM, ce dernier doit contenir au minimum un certificat
d'entit&eacute; finale (feuille).
La directive peut &ecirc;tre utilis&eacute;e plusieurs fois (elle r&eacute;f&eacute;rence des
fichiers diff&eacute;rents) pour accepter plusieurs algorithmes
d'authentification au niveau du serveur - souvent RSA, DSA et ECC. Le
nombre d'algorithmes support&eacute;s d&eacute;pend de la version d'OpenSSL utilis&eacute;e
avec mod_ssl : &agrave; partir de la version 1.0.0, la commande <code>openssl
list-public-key-algorithms</code> affiche la liste des algorithmes
support&eacute;s. Voir aussi la note ci-dessous &agrave; propos des limitations des versions
d'OpenSSL ant&eacute;rieures &agrave; 1.0.2 et la mani&egrave;re de les contourner.
</p>

<p>Les fichiers peuvent aussi contenir des certificats de CA
interm&eacute;diaires tri&eacute;s depuis la feuille vers la racine. Cette
fonctionnalit&eacute; est disponible depuis la version 2.4.8 du serveur HTTP
Apache, et rend obsol&egrave;te la directive <code class="directive"><a href="#sslcertificatechainfile">SSLCertificateChainFile</a></code>. A partir de la
version 1.0.2 d'OpenSSL, il est alors possible de configurer la cha&icirc;ne
de certification en fonction du certificat.</p>

<p>Depuis la version 2.4.7 du serveur HTTP Apache, on peut aussi ajouter
des param&egrave;tres DH personnalis&eacute;s et un nom EC
curve pour les cl&eacute;s &eacute;ph&eacute;m&egrave;res &agrave; la fin du premier fichier d&eacute;fini par la
directive <code class="directive">SSLCertificateFile</code>.
Ces param&egrave;tres peuvent &ecirc;tre g&eacute;n&eacute;r&eacute;s avec les commandes <code>openssl
dhparam</code> et <code>openssl ecparam</code>, et ils peuvent &ecirc;tre
ajout&eacute;s tel quel &agrave; la fin du premier fichier de certificat. En effet,
seul le premier fichier de certificat d&eacute;fini peut &ecirc;tre utilis&eacute; pour
enregistrer des param&egrave;tres personnalis&eacute;s, car ces derniers s'appliquent
ind&eacute;pendamment de l'algorithme d'authentification utilis&eacute;.
</p>

<div class="warning"><h3>N'enregistrez pas cl&eacute; et certificat dans le m&ecirc;me
fichier</h3>
<p>Cette pratique est fortement d&eacute;conseill&eacute;e pour les raisons suivantes :</p>
<ul>
<li><strong>S&eacute;curit&eacute;</strong> : conserver la cl&eacute; priv&eacute;e dans un fichier s&eacute;par&eacute;
permet une gestion plus stricte des permissions de fichier. Le fichier de
certificat peut &ecirc;tre lisible par tous (ce sont des donn&eacute;es publiques), alors que
le fichier de cl&eacute; ne doit &ecirc;tre lisible que par le superutilisateur. Combiner
les deux dans un m&ecirc;me fichier implique que toute vuln&eacute;rabilit&eacute; ou mauvaise
configuration qui expose le fichier du certificat exposera aussi la cl&eacute; priv&eacute;e.</li>
<li><strong>Contrainte d'ordre</strong> : si un fichier combin&eacute; est utilis&eacute;,
toute directive <code class="directive">SSLCertificateFile</code> r&eacute;f&eacute;ren&ccedil;ant un tel
fichier doit appara&icirc;tre <em>apr&egrave;s</em> toute directive
<code class="directive">SSLCertificateFile</code> qui utilise un fichier de cl&eacute; s&eacute;par&eacute;.
Ne pas respecter cet ordre provoquera des erreurs au d&eacute;marrage.</li>
<li><strong>Maintenance</strong> : avec des fichiers s&eacute;par&eacute;s, il est
imm&eacute;diatement possible de savoir quel fichier contient quoi, ce qui simplifie la
rotation des certificats et les audits.</li>
</ul>
<p>Si la cl&eacute; priv&eacute;e est chiffr&eacute;e, la phrase secr&egrave;te est demand&eacute;e au d&eacute;marrage.</p>
</div>

<p>Enfin, il est aussi possible d'ajouter la cl&eacute; priv&eacute;e du certificat de
l'entit&eacute; finale au fichier de certificat, ce qui permet de se passer
d'une directive <code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code> s&eacute;par&eacute;e.
</p>

<p>Plut&ocirc;t que de stocker les certificats et les cl&eacute;s priv&eacute;es dans des fichiers,
on peut utiliser un identificateur de certificat pour identifier un certificat
stock&eacute; dans un jeton. Actuellement, seuls les URIs PKCS#11 (<a href="https://www.rfc-editor.org/rfc/rfc7512">RFC 7512</a>)
sont reconnus comme identificateurs de certificats et peuvent &ecirc;tre utilis&eacute;s en
conjonction avec le moteur ou le fournisseur OpenSSL <code>pkcs11</code>. Si la
directive <code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code> est
absente, le certificat et la cl&eacute; priv&eacute;e peuvent &ecirc;tre charg&eacute;s avec
l'identificateur sp&eacute;cifi&eacute; via la directive <code class="directive">SSLCertificateFile</code>.</p>

<div class="note">
<h3>Interop&eacute;rabilit&eacute; des param&egrave;tres DH avec les nombres premiers de
plus de 1024 bits</h3>
<p>
Depuis la version 2.4.7, mod_ssl utilise des param&egrave;tres DH standardis&eacute;s avec des
nombres premiers de 2048, 3072 et 4096 bits, et avec des nombres premiers de
6144 et 8192 bits depuis la version 2.4.10 (voir la <a href="https://www.rfc-editor.org/rfc/rfc3526">RFC 3526</a>), et les
fournit aux clients en fonction de la longueur de la cl&eacute; du certificat RSA/DSA.
En particulier avec les clients bas&eacute;s sur Java (versions 7 et ant&eacute;rieures), ceci
peut provoquer des erreurs au cours de la n&eacute;gociation - voir cette <a href="../ssl/ssl_faq.html#javadh">r&eacute;ponse de la FAQ SSL</a> pour contourner les
probl&egrave;mes de ce genre.
</p>
</div>

<div class="note">
<h3>Param&egrave;tres DH par d&eacute;faut lorsqu'on utilise plusieurs certificats et une
version d'OpenSSL ant&eacute;rieure &agrave; 1.0.2.</h3>
<p>
Lorsqu'on utilise plusieurs certificats pour supporter diff&eacute;rents algorithmes
d'authentification (comme RSA, DSA, mais principalement ECC) et une
version d'OpenSSL ant&eacute;rieure &agrave; 1.0.2, il est recommand&eacute; soit d'utiliser des
param&egrave;tres DH sp&eacute;cifiques (solution &agrave; privil&eacute;gier) en les ajoutant au premier
fichier certificat (comme d&eacute;crit ci-dessus), soit d'ordonner les directives
<code class="directive">SSLCertificateFile</code> de fa&ccedil;on &agrave; ce que les certificats
RSA/DSA soit plac&eacute;s <strong>apr&egrave;s</strong> les certificats ECC.
</p>
<p>
Cette limitation est pr&eacute;sente dans les anciennes versions d'OpenSSL qui
pr&eacute;sentent toujours le dernier certificat configur&eacute;, au lieu
de laisser le serveur HTTP Apache d&eacute;terminer le certificat s&eacute;lectionn&eacute; lors de
la phase de n&eacute;gociation de la connexion (lorsque les param&egrave;tres DH doivent &ecirc;tre
envoy&eacute;s &agrave; l'h&ocirc;te distant).
De ce fait, le serveur peut s&eacute;lectionner des param&egrave;tres DH par d&eacute;faut bas&eacute;s sur
la longueur de la cl&eacute; du mauvais certificat (les cl&eacute;s ECC sont beaucoup plus
petites que les cl&eacute;s RSA/DSA et leur longueur n'est pas pertinente pour la
s&eacute;lection des nombres premiers DH).
</p>
<p>
Ce probl&egrave;me peut &ecirc;tre r&eacute;solu en cr&eacute;ant et configurant des param&egrave;tres DH
sp&eacute;cifiques (comme d&eacute;crit ci-dessus), car ils l'emportent toujours sur les
param&egrave;tres DH par d&eacute;faut, et vous pourrez ainsi utiliser une longueur sp&eacute;cifique
et appropri&eacute;e.
</p>
</div>

<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># Exemple utilisant un fichier cod&eacute; en PEM.
SSLCertificateFile "/usr/local/apache2/conf/ssl.crt/server.crt"
# Exemple d'utilisation d'un certificat et d'une cl&eacute; priv&eacute;s issus d'un jeton
# PKCS#11 :
SSLCertificateFile "pkcs11:token=My%20Token%20Name;id=45"</pre>
</div>

<p>Ce fichier est lu au d&eacute;marrage du serveur, alors que ce
dernier s'ex&eacute;cute encore en tant que <code>root</code> (avant la restriction de
ses privil&egrave;ges) ; il ne doit donc &ecirc;tre la propri&eacute;t&eacute; que de <code>root</code> et
lisible uniquement par ce dernier. Le fichier n'est pas relu en fonctionnement
normal ; un red&eacute;marrage du serveur est requis pour que les changements prennent
effet.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcertificatekeyfile">Directive <span id="SSLCertificateKeyFile">SSLCertificateKeyFile</span> <a title="Lien permanent" href="#sslcertificatekeyfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la cl&eacute; priv&eacute;e du serveur cod&eacute;e en
PEM</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCertificateKeyFile <var>file-path</var>|<var>keyid</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td><var>keyid</var> est disponible &agrave; partir de la version 2.4.42 du
serveur HTTP Apache.</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir le fichier contenant la cl&eacute; priv&eacute;e du serveur
cod&eacute;e en PEM ou l'identifiant de la cl&eacute; via un jeton cryptographique d&eacute;fini. Si
la cl&eacute; priv&eacute;e est chiffr&eacute;e, une bo&icirc;te de dialogue demandant le mot de passe de
cette derni&egrave;re s'ouvre au d&eacute;marrage du serveur.</p>

<p>
Cette directive peut &ecirc;tre utilis&eacute;e plusieurs fois pour r&eacute;f&eacute;rencer
diff&eacute;rents noms de fichiers, afin de supporter plusieurs algorithmes
pour l'authentification du serveur. A chaque directive <code class="directive">SSLCertificateKeyFile</code> doit &ecirc;tre associ&eacute;e
une directive <code class="directive">SSLCertificateFile</code> correspondante.
</p>

<div class="warning"><h3>N'enregistrez pas cl&eacute; et certificat dans le m&ecirc;me
fichier</h3>
<p>La cl&eacute; priv&eacute;e peut aussi &ecirc;tre combin&eacute;e avec le certificat dans le fichier
sp&eacute;cifi&eacute; par la directive <code class="directive"><a href="#sslcertificatefile">SSLCertificateFile</a></code>, mais cette pratique est
fortement d&eacute;conseill&eacute;e. Voir l'avertissement dans la documentation de la
directive <code class="directive">SSLCertificateFile</code> pour une explication
compl&egrave;te des risques et contraintes.</p></div>

<p>Plut&ocirc;t que de stocker des cl&eacute;s priv&eacute;es dans des fichiers, il est possible
d'identifier une cl&eacute; priv&eacute;e via un identifiant stock&eacute; dans un jeton.
Actuellement, seuls les URIs PKCS#11 (<a href="https://www.rfc-editor.org/rfc/rfc7512">RFC 7512</a>)
sont reconnus comme identifiants de cl&eacute;s priv&eacute;es et peuvent &ecirc;tre
utilis&eacute;s en conjonction avec le moteur ou le fournisseur OpenSSL
<code>pkcs11</code>.</p>

<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># Pour utiliser une cl&eacute; priv&eacute;e stock&eacute;e dans fichier encod&eacute; PEM :
SSLCertificateKeyFile "/usr/local/apache2/conf/ssl.key/server.key"
# Pour utiliser une cl&eacute; priv&eacute;e &agrave; partir d'un jeton PKCS#11 :
SSLCertificateKeyFile "pkcs11:token=My%20Token%20Name;id=45"</pre>
</div>

<p>Ce fichier est lu au d&eacute;marrage du serveur, alors que ce dernier s'ex&eacute;cute
encore en tant que <code>root</code> (avant la restriction de ses privil&egrave;ges) ;
il ne doit donc &ecirc;tre la propri&eacute;t&eacute; que de <code>root</code> et lisible uniquement
par ce dernier, car il contient la cl&eacute; priv&eacute;e. Le fichier n'est pas relu en
fonctionnement normal ; un red&eacute;marrage du serveur est requis pour que les
changements prennent effet.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslciphersuite">Directive <span id="SSLCipherSuite">SSLCipherSuite</span> <a title="Lien permanent" href="#sslciphersuite" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Algorithmes de chiffrement disponibles pour la n&eacute;gociation
au cours de l'initialisation de la connexion SSL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCipherSuite [<var>protocol</var>] <var>cipher-spec</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLCipherSuite DEFAULT (d&eacute;pend de la version d'OpenSSL
install&eacute;e)</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autoris&eacute;es:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive complexe utilise la cha&icirc;ne <var>cipher-spec</var>
contenant la liste des algorithmes de chiffrement OpenSSL que le client
peut utiliser au cours de la phase d'initialisation de la connexion SSL. La
sp&eacute;cification optionnelle du protocole permet de configurer la suite
d'algorithmes de chiffrement pour une version sp&eacute;cifique de SSL. Une des valeurs
possibles est "SSL" pour toutes les versions du protocole SSL jusqu'&agrave; TLSv1.2
compris.
</p>
<p>
Notez que cette directive peut &ecirc;tre utilis&eacute;e aussi bien dans un contexte
de serveur que dans un contexte de r&eacute;pertoire. Dans un contexte de
serveur, elle s'applique &agrave; l'initialisation SSL standard lorsqu'une
connexion est &eacute;tablie. Dans un contexte de r&eacute;pertoire, elle force une
ren&eacute;gociation SSL avec la liste d'algorithmes de chiffrement sp&eacute;cifi&eacute;e
apr&egrave;s la lecture d'une requ&ecirc;te HTTP, mais avant l'envoi de la r&eacute;ponse
HTTP.</p>
<p>
Si la biblioth&egrave;que SSL supporte TLSv1.3 (versions d'OpenSSL 1.1.1 et
sup&eacute;rieures), il est possible de sp&eacute;cifier le param&egrave;tre "TLSv1.3" pour
configurer la suite d'algorithmes de chiffrement pour ce protocole. Comme
TLSv1.3 n'autorise pas la ren&eacute;gociation, sp&eacute;cifier pour lui des algorithmes de
chiffrement dans un contexte de r&eacute;pertoire n'est pas autoris&eacute;</p>
<p>
Pour obtenir la liste des noms d'algorithmes de chiffrement pour TLSv1.3, se
r&eacute;f&eacute;rer &agrave; la <a href="https://docs.openssl.org/master/man3/SSL_CTX_set_ciphersuites/">documentation
OpenSSL</a>.</p>
<p>
La liste d'algorithmes de chiffrement SSL sp&eacute;cifi&eacute;e par l'argument
<var>cipher-spec</var> comporte quatre attributs principaux auxquels
s'ajoutent quelques attributs secondaires :</p>
<ul>
<li><em>Algorithme d'&eacute;change de cl&eacute;s</em>:<br>
    RSA, Diffie-Hellman, Elliptic Curve Diffie-Hellman, Secure Remote Password.
</li>
<li><em>Algorithme d'authentification</em>:<br>
    RSA, Diffie-Hellman, DSS, ECDSA, ou none.
</li>
<li><em>Algorithme de chiffrement</em>:<br>
    AES, DES, Triple-DES, RC4, RC2, IDEA, etc...
</li>
<li><em>Algorithme de condens&eacute; MAC</em>:<br>
    MD5, SHA ou SHA1, SHA256, SHA384.
</li>
</ul>
<p>L'algorithme de chiffrement peut aussi provenir de l'ext&eacute;rieur. Les
algorithmes SSLv2 ne sont plus support&eacute;s.
Pour d&eacute;finir les algorithmes &agrave; utiliser, on
peut soit sp&eacute;cifier tous les algorithmes &agrave; la fois, soit utiliser des
alias pour sp&eacute;cifier une liste d'algorithmes dans leur ordre de
pr&eacute;f&eacute;rence (voir <a href="#table1">Table 1</a>). Les algorithmes et
alias effectivement disponibles d&eacute;pendent de la version d'openssl
utilis&eacute;e. Les versions ult&eacute;rieures d'openssl sont susceptibles d'inclure
des algorithmes suppl&eacute;mentaires.</p>

<table class="bordered">

<tr><th><a name="table1">Symbole</a></th> <th>Description</th></tr>
<tr><td colspan="2"><em>Algorithme d'&eacute;change de cl&eacute;s :</em></td></tr>
<tr><td><code>kRSA</code></td>   <td>Echange de cl&eacute;s RSA</td></tr>
<tr><td><code>kDHr</code></td>   <td>Echange de cl&eacute;s Diffie-Hellman avec
cl&eacute; RSA</td></tr>
<tr><td><code>kDHd</code></td>   <td>Echange de cl&eacute;s Diffie-Hellman avec
cl&eacute; DSA</td></tr>
<tr><td><code>kEDH</code></td>   <td>Echange de cl&eacute;s Diffie-Hellman
temporaires (pas de certificat)</td>   </tr>
<tr><td><code>kSRP</code></td>   <td>&eacute;change de cl&eacute;s avec mot de passe
distant s&eacute;curis&eacute; (SRP)</td></tr>
<tr><td colspan="2"><em>Algorithmes d'authentification :</em></td></tr>
<tr><td><code>aNULL</code></td>  <td>Pas d'authentification</td></tr>
<tr><td><code>aRSA</code></td>   <td>Authentification RSA</td></tr>
<tr><td><code>aDSS</code></td>   <td>Authentification DSS</td> </tr>
<tr><td><code>aDH</code></td>    <td>Authentification Diffie-Hellman</td></tr>
<tr><td colspan="2"><em>Algorithmes de chiffrement :</em></td></tr>
<tr><td><code>eNULL</code></td>  <td>Pas de chiffrement</td>         </tr>
<tr><td><code>NULL</code></td>   <td>alias pour eNULL</td>         </tr>
<tr><td><code>AES</code></td>    <td>Chiffrement AES</td>        </tr>
<tr><td><code>DES</code></td>    <td>Chiffrement DES</td>        </tr>
<tr><td><code>3DES</code></td>   <td>Chiffrement Triple-DES</td> </tr>
<tr><td><code>RC4</code></td>    <td>Chiffrement RC4</td>       </tr>
<tr><td><code>RC2</code></td>    <td>Chiffrement RC2</td>       </tr>
<tr><td><code>IDEA</code></td>   <td>Chiffrement IDEA</td>       </tr>
<tr><td colspan="2"><em>Algorithmes de condens&eacute;s MAC </em>:</td></tr>
<tr><td><code>MD5</code></td>    <td>Fonction de hashage MD5</td></tr>
<tr><td><code>SHA1</code></td>   <td>Fonction de hashage SHA1</td></tr>
<tr><td><code>SHA</code></td>    <td>alias pour SHA1</td> </tr>
<tr><td><code>SHA256</code></td> <td>Fonction de hashage SHA256</td> </tr>
<tr><td><code>SHA384</code></td> <td>Fonction de hashage SHA384</td> </tr>
<tr><td colspan="2"><em>Alias :</em></td></tr>
<tr><td><code>SSLv3</code></td>  <td>tous les algorithmes de chiffrement
SSL version 3.0</td> </tr>
<tr><td><code>TLSv1</code></td>  <td>tous les algorithmes de chiffrement
TLS version 1.0</td> </tr>
<tr><td><code>EXP</code></td>    <td>tous les algorithmes de chiffrement
externes</td>  </tr>
<tr><td><code>EXPORT40</code></td> <td>tous les algorithmes de chiffrement
externes limit&eacute;s &agrave; 40 bits</td>  </tr>
<tr><td><code>EXPORT56</code></td> <td>tous les algorithmes de chiffrement
externes limit&eacute;s &agrave; 56 bits</td>  </tr>
<tr><td><code>LOW</code></td>    <td>tous les algorithmes de chiffrement
faibles (non externes, DES simple)</td></tr>
<tr><td><code>MEDIUM</code></td> <td>tous les algorithmes avec
chiffrement 128 bits</td> </tr>
<tr><td><code>HIGH</code></td>   <td>tous les algorithmes
utilisant Triple-DES</td>     </tr>
<tr><td><code>RSA</code></td>    <td>tous les algorithmes
utilisant l'&eacute;change de cl&eacute;s RSA</td> </tr>
<tr><td><code>DH</code></td>     <td>tous les algorithmes
utilisant l'&eacute;change de cl&eacute;s Diffie-Hellman</td> </tr>
<tr><td><code>EDH</code></td>    <td>tous les algorithmes
utilisant l'&eacute;change de cl&eacute;s Diffie-Hellman temporaires</td> </tr>
<tr><td><code>ECDH</code></td>   <td>Echange de cl&eacute;s Elliptic Curve Diffie-Hellman</td>   </tr>
<tr><td><code>ADH</code></td>    <td>tous les algorithmes
utilisant l'&eacute;change de cl&eacute;s Diffie-Hellman anonymes</td> </tr>
<tr><td><code>AECDH</code></td>    <td>tous les algorithmes utilisant
l'&eacute;change de cl&eacute;s Elliptic Curve Diffie-Hellman</td> </tr>
<tr><td><code>SRP</code></td>    <td>tous les algorithmes utilisant
l'&eacute;change de cl&eacute;s avec mot de passe distant s&eacute;curis&eacute; (SRP)</td> </tr>
<tr><td><code>DSS</code></td>    <td>tous les algorithmes
utilisant l'authentification DSS</td> </tr>
<tr><td><code>ECDSA</code></td>    <td>tous les algorithmes utilisant
l'authentification ECDSA</td> </tr>
<tr><td><code>aNULL</code></td>   <td>tous les algorithmes n'utilisant
aucune authentification</td> </tr>
</table>
<p>
Cela devient int&eacute;ressant lorsque tous ces symboles sont combin&eacute;s
ensemble pour sp&eacute;cifier les algorithmes disponibles et l'ordre dans
lequel vous voulez les utiliser. Pour simplifier tout cela, vous
disposez aussi d'alias (<code>SSLv3, TLSv1, EXP, LOW, MEDIUM,
HIGH</code>) pour certains groupes d'algorithmes. Ces symboles peuvent
&ecirc;tre reli&eacute;s par des pr&eacute;fixes pour former la cha&icirc;ne <var>algorithmes</var>.
Les pr&eacute;fixes disponibles sont :</p>
<ul>
<li>none: ajoute l'algorithme &agrave; la liste</li>
<li><code>+</code>: d&eacute;place les algorithmes qui conviennent &agrave; la
place courante dans la liste</li>
<li><code>-</code>: supprime l'algorithme de la liste (peut &ecirc;tre rajout&eacute;
plus tard)</li>
<li><code>!</code>: supprime d&eacute;finitivement l'algorithme de la liste (ne
peut <strong>plus</strong> y &ecirc;tre rajout&eacute; plus tard)</li>
</ul>

<div class="note">
<h3>Les algorithmes <code>aNULL</code>, <code>eNULL</code> et
<code>EXP</code> sont toujours d&eacute;sactiv&eacute;s</h3>
<p>Depuis la version 2.4.7, les
algorithmes de type null ou destin&eacute;s &agrave; l'exportation sont toujours
d&eacute;sactiv&eacute;s car mod_ssl ajoute obligatoirement
<code>!aNULL:!eNULL:!EXP</code> &agrave; toute cha&icirc;ne d'algorithme de
chiffrement &agrave; l'initialisation.</p>
</div>

<p>Pour vous simplifier la vie, vous pouvez utiliser la commande
``<code>openssl ciphers -v</code>'' qui vous fournit un moyen simple de
cr&eacute;er la cha&icirc;ne <var>algorithmes</var> avec succ&egrave;s. La cha&icirc;ne
<var>algorithmes</var> par d&eacute;faut d&eacute;pend de la version des biblioth&egrave;ques
SSL install&eacute;es. Supposons qu'elle contienne
``<code>RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5</code>'', ce qui
stipule de mettre <code>RC4-SHA</code> et <code>AES128-SHA</code> en
premiers, car ces algorithmes pr&eacute;sentent un bon compromis entre vitesse
et s&eacute;curit&eacute;. Viennent ensuite les algorithmes de s&eacute;curit&eacute; &eacute;lev&eacute;e et
moyenne. En fin de compte, les algorithmes qui n'offrent aucune
authentification sont exclus, comme les algorithmes anonymes
Diffie-Hellman pour SSL, ainsi que tous les algorithmes qui utilisent
<code>MD5</code> pour le hashage, car celui-ci est reconnu comme
insuffisant.</p>
<div class="example"><pre>$ openssl ciphers -v 'RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5'
RC4-SHA                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=SHA1
AES128-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
...                     ...               ...     ...           ...
SEED-SHA                SSLv3 Kx=RSA      Au=RSA  Enc=SEED(128) Mac=SHA1
PSK-RC4-SHA             SSLv3 Kx=PSK      Au=PSK  Enc=RC4(128)  Mac=SHA1
KRB5-RC4-SHA            SSLv3 Kx=KRB5     Au=KRB5 Enc=RC4(128)  Mac=SHA1</pre></div>
<p>Vous trouverez la liste compl&egrave;te des algorithmes RSA &amp; DH
sp&eacute;cifiques &agrave; SSL dans la <a href="#table2">Table 2</a>.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW</pre>
</div>
<table class="bordered">

<tr><th><a name="table2">Symbole algorithme</a></th> <th>Protocole</th>
<th>Echange de cl&eacute;s</th> <th>Authentification</th> <th>Chiffrement</th>
<th>Condens&eacute; MAC</th> <th>Type</th> </tr>
<tr><td colspan="7"><em>Algorithmes RSA :</em></td></tr>
<tr><td><code>DES-CBC3-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>3DES(168)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>IDEA-CBC-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>IDEA(128)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>RC4-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>RC4(128)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>RC4-MD5</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>RC4(128)</td> <td>MD5</td> <td></td> </tr>
<tr><td><code>DES-CBC-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>DES(56)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>EXP-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>RSA(512)</td> <td>RSA</td> <td>DES(40)</td> <td>SHA1</td> <td> export</td> </tr>
<tr><td><code>EXP-RC2-CBC-MD5</code></td> <td>SSLv3</td> <td>RSA(512)</td> <td>RSA</td> <td>RC2(40)</td> <td>MD5</td> <td>  export</td> </tr>
<tr><td><code>EXP-RC4-MD5</code></td> <td>SSLv3</td> <td>RSA(512)</td> <td>RSA</td> <td>RC4(40)</td> <td>MD5</td> <td>  export</td> </tr>
<tr><td><code>NULL-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>None</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>NULL-MD5</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>None</td> <td>MD5</td> <td></td> </tr>
<tr><td colspan="7"><em>Algorithmes Diffie-Hellman :</em></td></tr>
<tr><td><code>ADH-DES-CBC3-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>None</td> <td>3DES(168)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>ADH-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>None</td> <td>DES(56)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>ADH-RC4-MD5</code></td> <td>SSLv3</td> <td>DH</td> <td>None</td> <td>RC4(128)</td> <td>MD5</td> <td></td> </tr>
<tr><td><code>EDH-RSA-DES-CBC3-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>RSA</td> <td>3DES(168)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>EDH-DSS-DES-CBC3-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>DSS</td> <td>3DES(168)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>EDH-RSA-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>RSA</td> <td>DES(56)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>EDH-DSS-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>DSS</td> <td>DES(56)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>EXP-EDH-RSA-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH(512)</td> <td>RSA</td> <td>DES(40)</td> <td>SHA1</td> <td> export</td> </tr>
<tr><td><code>EXP-EDH-DSS-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH(512)</td> <td>DSS</td> <td>DES(40)</td> <td>SHA1</td> <td> export</td> </tr>
<tr><td><code>EXP-ADH-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH(512)</td> <td>None</td> <td>DES(40)</td> <td>SHA1</td> <td> export</td> </tr>
<tr><td><code>EXP-ADH-RC4-MD5</code></td> <td>SSLv3</td> <td>DH(512)</td> <td>None</td> <td>RC4(40)</td> <td>MD5</td> <td>  export</td> </tr>
</table>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcompression">Directive <span id="SSLCompression">SSLCompression</span> <a title="Lien permanent" href="#sslcompression" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet d'activer la compression au niveau SSL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCompression on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLCompression off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible &agrave; partir de la version 2.4.3 du serveur HTTP
Apache, si on utilise une version d'OpenSSL 0.9.8 ou sup&eacute;rieure ;
l'utilisation dans un contexte de serveur virtuel n'est disponible que
si on utilise une version d'OpenSSL 1.0.0 ou sup&eacute;rieure. La valeur par
d&eacute;faut &eacute;tait <code>on</code> dans la version 2.4.3.</td></tr>
</table>
<p>Cette directive permet d'activer la compression au niveau SSL.</p>
<div class="warning">
<p>L'activation de la compression est &agrave; l'origine de probl&egrave;mes de
s&eacute;curit&eacute; dans la plupart des configurations (l'attaque nomm&eacute;e CRIME).</p>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcryptodevice">Directive <span id="SSLCryptoDevice">SSLCryptoDevice</span> <a title="Lien permanent" href="#sslcryptodevice" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active l'utilisation d'un acc&eacute;l&eacute;rateur mat&eacute;riel de
chiffrement</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCryptoDevice <var>moteur</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLCryptoDevice builtin</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet d'activer l'utilisation d'une carte acc&eacute;l&eacute;ratrice
de chiffrement qui prendra en compte certaines parties du traitement
relatif &agrave; SSL. Cette directive n'est utilisable que si la bo&icirc;te &agrave;
outils SSL &agrave; &eacute;t&eacute; compil&eacute;e avec le support "engine" ; les versions 0.9.7
et sup&eacute;rieures d'OpenSSL poss&egrave;dent par d&eacute;faut le support "engine", alors
qu'avec la version 0.9.6, il faut utiliser les distributions s&eacute;par&eacute;es
"-engine".</p>

<p>Pour d&eacute;terminer les moteurs support&eacute;s, ex&eacute;cutez la commande
"<code>openssl engine</code>".</p>

<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># Pour un acc&eacute;l&eacute;rateur Broadcom :
SSLCryptoDevice ubsec</pre>
</div>

<p>
&Agrave; partir de la version 3.0 d'OpenSSL, si aucun moteur n'est sp&eacute;cifi&eacute; alors que
la cl&eacute; ou le certificat sont sp&eacute;cifi&eacute;s &agrave; l'aide d'URIs PKCS#11
(<a href="https://www.rfc-editor.org/rfc/rfc7512">RFC 7512</a>), le chargement de la cl&eacute; et du certificat est tent&eacute; &agrave; partir
d'un fournisseur OpenSSL. Le fournisseur OpenSSL &agrave; utiliser doit &ecirc;tre d&eacute;fini et
configur&eacute; dans le fichier de configuration d'OpenSSL et il doit prendre en
charge la <a href="https://docs.openssl.org/3.0/man7/provider-storemgmt/">m&eacute;thode STORE</a>
pour les URIs PKCS#11 (<a href="https://www.rfc-editor.org/rfc/rfc7512">RFC 7512</a>).
</p>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslengine">Directive <span id="SSLEngine">SSLEngine</span> <a title="Lien permanent" href="#sslengine" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interrupteur marche/arr&ecirc;t du moteur SSL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLEngine on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLEngine off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>
La prise en charge de l'argument "optional" a &eacute;t&eacute; supprim&eacute;e avec la version
2.4.64. Cet argument activait la prise en charge de la RFC 2817 (mise &agrave; niveau de TLS).
</td></tr>
</table>
<p>
Cette directive permet d'activer/d&eacute;sactiver le moteur du protocole
SSL/TLS. Elle doit &ecirc;tre utilis&eacute;e dans une section <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> pour activer
SSL/TLS pour ce serveur virtuel particulier. Par d&eacute;faut, le moteur du
protocole SSL/TLS est d&eacute;sactiv&eacute; pour le serveur principal et tous les
serveurs virtuels configur&eacute;s.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;VirtualHost _default_:443&gt;
SSLEngine on
#...
&lt;/VirtualHost&gt;</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslfips">Directive <span id="SSLFIPS">SSLFIPS</span> <a title="Lien permanent" href="#sslfips" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Coimmutateur du mode SSL FIPS</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLFIPS on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLFIPS off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet d'activer/d&eacute;sactiver l'utilisation du drapeau
FIPS_mode de la biblioth&egrave;que SSL. Elle doit &ecirc;tre d&eacute;finie dans le
contexte du serveur principal, et n'accepte pas les configurations
sources de conflits (SSLFIPS on suivi de SSLFIPS off par exemple). Le
mode s'applique &agrave; toutes les op&eacute;rations de la biblioth&egrave;que SSL.
</p>
<p>
Si httpd a &eacute;t&eacute; compil&eacute; avec une biblioth&egrave;que SSL qui ne supporte pas le
drapeau FIPS_mode, la directive <code>SSLFIPS on</code> &eacute;chouera.
Reportez-vous au document sur la politique de s&eacute;curit&eacute; FIPS 140-2 de la
biblioth&egrave;que du fournisseur SSL, pour les pr&eacute;requis sp&eacute;cifiques
n&eacute;cessaires &agrave; l'utilisation de mod_ssl selon un mode d'op&eacute;ration
approuv&eacute; par FIPS 140-2 ; notez que mod_ssl en lui-m&ecirc;me n'est pas
valid&eacute;, mais peut &ecirc;tre d&eacute;crit comme utilisant un module de chiffrement
valid&eacute; par FIPS 140-2, lorsque tous les composants sont assembl&eacute;s et mis
en oeuvre selon les recommandations de la politique de s&eacute;curit&eacute;
applicable.
</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslhonorcipherorder">Directive <span id="SSLHonorCipherOrder">SSLHonorCipherOrder</span> <a title="Lien permanent" href="#sslhonorcipherorder" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Option permettant de classer les algorithmes de chiffrement
du serveur par ordre de pr&eacute;f&eacute;rence</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLHonorCipherOrder on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLHonorCipherOrder off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible &agrave; partir de la version 2.1 du serveur HTTP Apache</td></tr>
</table>
<p>Normalement, ce sont les pr&eacute;f&eacute;rences du client qui sont prises en
compte lors du choix d'un algorithme de chiffrement au cours d'une
n&eacute;gociation SSLv3 ou TLSv1. Si cette directive est activ&eacute;e, ce sont les
pr&eacute;f&eacute;rences du serveur qui seront prises en compte &agrave; la place.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLHonorCipherOrder on</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslinsecurerenegotiation">Directive <span id="SSLInsecureRenegotiation">SSLInsecureRenegotiation</span> <a title="Lien permanent" href="#sslinsecurerenegotiation" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Option permettant d'activer le support de la ren&eacute;gociation
non s&eacute;curis&eacute;e</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLInsecureRenegotiation on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLInsecureRenegotiation off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis httpd 2.2.15, si une version 0.9.8m
ou sup&eacute;rieure d'OpenSSL est utilis&eacute;e</td></tr>
</table>
<p>Comme il a &eacute;t&eacute; sp&eacute;cifi&eacute;, toutes les versions des protocoles SSL et
TLS (jusqu'&agrave; la version 1.2 de TLS incluse) &eacute;taient vuln&eacute;rables &agrave; une
attaque de type Man-in-the-Middle (<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2009-3555">CVE-2009-3555</a>)
au cours d'une ren&eacute;gociation. Cette vuln&eacute;rabilit&eacute; permettait &agrave; un
attaquant de pr&eacute;fixer la requ&ecirc;te HTTP (telle qu'elle &eacute;tait vue du
serveur) avec un texte choisi. Une extension du protocole a &eacute;t&eacute;
d&eacute;velopp&eacute;e pour corriger cette vuln&eacute;rabilit&eacute;, sous r&eacute;serve qu'elle soit
support&eacute;e par le client et le serveur.</p>

<p>Si <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> est li&eacute; &agrave; une version 0.9.8m ou
sup&eacute;rieure d'OpenSSL, par d&eacute;faut, la ren&eacute;gociation n'est accord&eacute;e qu'aux
clients qui supportent la nouvelle extension du protocole. Si
cette directive est activ&eacute;e, la ren&eacute;gociation sera accord&eacute;e aux anciens
clients (non patch&eacute;s), quoique de mani&egrave;re non s&eacute;curis&eacute;e</p>

<div class="warning"><h3>Avertissement &agrave; propos de la s&eacute;curit&eacute;</h3>
<p>Si cette directive est activ&eacute;e, les connexions SSL seront vuln&eacute;rables
aux attaques de type pr&eacute;fixe Man-in-the-Middle comme d&eacute;crit dans <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2009-3555">CVE-2009-3555</a>.</p>
</div>

<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLInsecureRenegotiation on</pre>
</div>

<p>La variable d'environnement <code>SSL_SECURE_RENEG</code> peut &ecirc;tre
utilis&eacute;e dans un script SSI ou CGI pour d&eacute;terminer si la ren&eacute;gociation
s&eacute;curis&eacute;e est support&eacute;e pour une connexion SSL donn&eacute;e.</p>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspdefaultresponder">Directive <span id="SSLOCSPDefaultResponder">SSLOCSPDefaultResponder</span> <a title="Lien permanent" href="#sslocspdefaultresponder" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finit l'URI du r&eacute;pondeur par d&eacute;faut pour la validation
OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLOCSPDefaultResponder <var>uri</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>Cette directive permet de d&eacute;finir le r&eacute;pondeur OCSP par d&eacute;faut. Si la
directive <code class="directive"><a href="#sslocspoverrideresponder">SSLOCSPOverrideResponder</a></code> n'est pas activ&eacute;e,
l'URI sp&eacute;cifi&eacute; ne sera utilis&eacute; que si aucun URI de r&eacute;pondeur n'est
sp&eacute;cifi&eacute; dans le certificat en cours de v&eacute;rification.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspenable">Directive <span id="SSLOCSPEnable">SSLOCSPEnable</span> <a title="Lien permanent" href="#sslocspenable" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la validation OCSP de la cha&icirc;ne de certificats du
client</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLOCSPEnable on|leaf|off [<var>flags</var>]</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLOCSPEnable off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le mode <em>leaf</em> est disponible &agrave; partir de la version
2.4.34 du serveur HTTP Apache. Le drapeau <em>no_ocsp_for_cert_ok</em> est
disponible &agrave; partir de la version 2.4.29 du serveur HTTP Apache.</td></tr>
</table>
<p>Cette directive permet d'activer la validation OCSP de la cha&icirc;ne de
certificats du client. Si elle est activ&eacute;e, les certificats de la cha&icirc;ne
de certificats du client seront valid&eacute;s aupr&egrave;s d'un r&eacute;pondeur OCSP, une
fois la v&eacute;rification normale effectu&eacute;e (v&eacute;rification des CRLs
incluse). En mode 'leaf', seul le certificat du client sera valid&eacute;.</p>

<p>Le r&eacute;pondeur OCSP utilis&eacute; est soit extrait du certificat lui-m&ecirc;me,
soit sp&eacute;cifi&eacute; dans la configuration ; voir les directives <code class="directive"><a href="#sslocspdefaultresponder">SSLOCSPDefaultResponder</a></code> et <code class="directive"><a href="#sslocspoverrideresponder">SSLOCSPOverrideResponder</a></code>.</p>

<p>Les drapeaux facultatifs suivants sont disponibles&nbsp;:</p>
<ul>
<li><code>no_ocsp_for_cert_ok</code>
    <p>Normalement, Si la validation OCSP est activ&eacute;e, un certificat qui ne
    contient pas d'URL de r&eacute;ponse OCSP provoquera un &eacute;chec de validation.
    Ajouter ce drapeau permet &agrave; un tel certificat de passer la validation. Cela
    s'av&egrave;re utile dans les environnements o&ugrave; certains certificats de la cha&icirc;ne
    ne contiennent pas d'information de r&eacute;ponse OCSP.</p>
</li>
</ul>

<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLVerifyClient on
SSLOCSPEnable on
SSLOCSPDefaultResponder "http://responder.example.com:8888/responder"
SSLOCSPOverrideResponder on</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspnoverify">Directive <span id="SSLOCSPNoverify">SSLOCSPNoverify</span> <a title="Lien permanent" href="#sslocspnoverify" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Evite la v&eacute;rification des certificats des r&eacute;pondeurs OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLOCSPNoverify on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLOCSPNoverify off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible &agrave; partir de la version 2.4.26 du serveur HTTP Apache,
sous r&eacute;serve d'utiliser une version 0.9.7 ou sup&eacute;rieure d'OpenSSL</td></tr>
</table>
<p>Cette directive permet d'&eacute;viter la v&eacute;rification des certificats
des r&eacute;pondeurs OCSP, ce qui peut s'av&eacute;rer utile lorsqu'on teste un serveur OCSP.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspoverrideresponder">Directive <span id="SSLOCSPOverrideResponder">SSLOCSPOverrideResponder</span> <a title="Lien permanent" href="#sslocspoverrideresponder" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Force l'utilisation de l'URI du r&eacute;pondeur par d&eacute;faut pour
la validation OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLOCSPOverrideResponder on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLOCSPOverrideResponder off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>Force l'utilisation, au cours d'une validation OCSP de certificat, du
r&eacute;pondeur OCSP par d&eacute;faut sp&eacute;cifi&eacute; dans la configuration, que le
certificat en cours de v&eacute;rification fasse mention d'un r&eacute;pondeur OCSP ou
non.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspproxyurl">Directive <span id="SSLOCSPProxyURL">SSLOCSPProxyURL</span> <a title="Lien permanent" href="#sslocspproxyurl" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Adresse de mandataire &agrave; utiliser pour les requ&ecirc;tes OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLOCSPProxyURL <var>url</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible &agrave; partir de la version 2.4.19 du serveur HTTP Apache</td></tr>
</table>
<p>Cette directive permet de d&eacute;finir l'URL d'un mandataire HTTP qui devra &ecirc;tre
utilis&eacute; pour toutes les requ&ecirc;tes vers un r&eacute;pondeur OCSP.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocsprespondercertificatefile">Directive <span id="SSLOCSPResponderCertificateFile">SSLOCSPResponderCertificateFile</span> <a title="Lien permanent" href="#sslocsprespondercertificatefile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un jeu de certificats de confiance du r&eacute;pondeur OCSP avec
encodage PEM</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLOCSPResponderCertificateFile <var>file</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible &agrave; partir de la version 2.4.26 du serveur HTTP Apache,
sous r&eacute;serve d'utiliser une version 0.9.7 ou sup&eacute;rieure d'OpenSSL</td></tr>
</table>
<p>Cette directive permet de d&eacute;finir un fichier contenant une liste de
certificats de confiance du r&eacute;pondeur OCSP &agrave; utiliser au cours de la validation
du certificat du r&eacute;pondeur OCSP. Les certificats fournis peuvent
&ecirc;tre consid&eacute;r&eacute;s comme de confiance sans avoir &agrave; effectuer de v&eacute;rifications
suppl&eacute;mentaires. Ce processus de validation du certificat du r&eacute;pondeur OCSP
intervient en g&eacute;n&eacute;ral lorsque ce dernier est autosign&eacute; ou tout simplement absent
de la r&eacute;ponse OCSP.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocsprespondertimeout">Directive <span id="SSLOCSPResponderTimeout">SSLOCSPResponderTimeout</span> <a title="Lien permanent" href="#sslocsprespondertimeout" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;lai d'attente pour les requ&ecirc;tes OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLOCSPResponderTimeout <var>secondes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLOCSPResponderTimeout 10</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>Cette option permet de d&eacute;finir le d&eacute;lai d'attente pour les requ&ecirc;tes &agrave;
destination des r&eacute;pondeurs OCSP, lorsque la directive <code class="directive"><a href="#sslocspenable">SSLOCSPEnable</a></code> est &agrave; on.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspresponsemaxage">Directive <span id="SSLOCSPResponseMaxAge">SSLOCSPResponseMaxAge</span> <a title="Lien permanent" href="#sslocspresponsemaxage" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Age maximum autoris&eacute; pour les r&eacute;ponses OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLOCSPResponseMaxAge <var>secondes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLOCSPResponseMaxAge -1</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>Cette option permet de d&eacute;finir l'&acirc;ge maximum autoris&eacute; (la
"fraicheur") des r&eacute;ponses OCSP. La valeur par d&eacute;fault (<code>-1</code>)
signifie qu'aucun &acirc;ge maximum n'est d&eacute;fini ; autrement dit, les
r&eacute;ponses OCSP sont consid&eacute;r&eacute;es comme valides tant que la valeur de leur
champ <code>nextUpdate</code> se situe dans le futur.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspresponsetimeskew">Directive <span id="SSLOCSPResponseTimeSkew">SSLOCSPResponseTimeSkew</span> <a title="Lien permanent" href="#sslocspresponsetimeskew" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;rive temporelle maximale autoris&eacute;e pour la validation des
r&eacute;ponses OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLOCSPResponseTimeSkew <var>secondes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLOCSPResponseTimeSkew 300</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>Cette option permet de d&eacute;finir la d&eacute;rive temporelle maximale
autoris&eacute;e pour les r&eacute;ponses OCSP (lors de la v&eacute;rification des champs
<code>thisUpdate</code> et <code>nextUpdate</code>).</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspuserequestnonce">Directive <span id="SSLOCSPUseRequestNonce">SSLOCSPUseRequestNonce</span> <a title="Lien permanent" href="#sslocspuserequestnonce" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use a nonce within OCSP queries</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLOCSPUseRequestNonce on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLOCSPUseRequestNonce on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Available in httpd 2.4.10 and later</td></tr>
</table><p>La documentation de cette directive
	n'a pas encore &eacute;t&eacute; traduite. Veuillez vous reporter &agrave; la version
	en langue anglaise.</p></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslopensslconfcmd">Directive <span id="SSLOpenSSLConfCmd">SSLOpenSSLConfCmd</span> <a title="Lien permanent" href="#sslopensslconfcmd" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration des param&egrave;tres d'OpenSSL via son API <em>SSL_CONF</em></td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLOpenSSLConfCmd <var>commande</var> <var>valeur</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4.8 du serveur HTTP
Apache avec OpenSSL 1.0.2 ou sup&eacute;rieur</td></tr>
</table>
<p>Cette directive permet &agrave; mod_ssl d'acc&eacute;der &agrave; l'API <em>SSL_CONF</em>
d'OpenSSL. Il n'est ainsi plus n&eacute;cessaire d'impl&eacute;menter des
directives suppl&eacute;mentaires pour <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> lorsque de nouvelles
fonctionnalit&eacute;s sont ajout&eacute;es &agrave; OpenSSL, ce qui rend la configuration de
ce dernier beaucoup plus souple.</p>

<p>Le jeu de commandes disponibles pour la directive
<code class="directive">SSLOpenSSLConfCmd</code> d&eacute;pend de la version d'OpenSSL
utilis&eacute;e pour <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> (la version minimale 1.0.2 est un
pr&eacute;requis). Pour obtenir la liste des commandes support&eacute;es, voir la
section <em>Supported configuration file commands</em> de la page de
manuel d'OpenSSL <a href="https://docs.openssl.org/master/man3/SSL_CONF_cmd/#supported-configuration-file-commands">SSL_CONF_cmd(3)</a>.</p>

<p>Certaines commandes peuvent remplacer des directives existantes
(comme <code class="directive"><a href="#sslciphersuite">SSLCipherSuite</a></code> ou
<code class="directive"><a href="#sslprotocol">SSLProtocol</a></code>) ; notez cependant
que la syntaxe et/ou les valeurs possibles peuvent diff&eacute;rer.</p>

<div class="example"><h3>Examples</h3><pre class="prettyprint lang-config">SSLOpenSSLConfCmd Options -SessionTicket,ServerPreference
SSLOpenSSLConfCmd ECDHParameters brainpoolP256r1
SSLOpenSSLConfCmd ServerInfoFile
"/usr/local/apache2/conf/server-info.pem"
SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"
SSLOpenSSLConfCmd SignatureAlgorithms RSA+SHA384:ECDSA+SHA256</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="ssloptions">Directive <span id="SSLOptions">SSLOptions</span> <a title="Lien permanent" href="#ssloptions" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure diff&eacute;rentes options d'ex&eacute;cution du moteur SSL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLOptions [+|-]<var>option</var> ...</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autoris&eacute;es:</a></th><td>Options</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet de contr&ocirc;ler diff&eacute;rentes options d'ex&eacute;cution du
moteur SSL dans un contexte de r&eacute;pertoire. Normalement, si plusieurs
<code class="directive">SSLOptions</code> peuvent s'appliquer &agrave; un r&eacute;pertoire, c'est la
plus sp&eacute;cifique qui est v&eacute;ritablement prise en compte ; les options ne
se combinent pas entre elles. Elles se combinent cependant entre elles
si elles sont <em>toutes</em> pr&eacute;c&eacute;d&eacute;es par un symbole plus
(<code>+</code>) ou moins (<code>-</code>). Toute option pr&eacute;c&eacute;d&eacute;e d'un
<code>+</code> est ajout&eacute;e aux options actuellement en vigueur, et toute
option pr&eacute;c&eacute;d&eacute;e d'un <code>-</code> est supprim&eacute;e de ces m&ecirc;mes
options.
</p>
<p>
Les <var>option</var>s disponibles sont :</p>
<ul>
<li><code>StdEnvVars</code>
    <p>
    Lorsque cette option est activ&eacute;e, le jeu standard de variables
    d'environnement SSL relatives &agrave; CGI/SSI est cr&eacute;&eacute;. Cette option est
    d&eacute;sactiv&eacute;e par d&eacute;faut pour des raisons de performances, car
    l'extraction des informations constitue une op&eacute;ration assez co&ucirc;teuse
    en ressources. On n'active donc en g&eacute;n&eacute;ral cette option que pour les
    requ&ecirc;tes CGI et SSI.</p>
</li>
<li><code>ExportCertData</code>
    <p>
    Lorsque cette option est activ&eacute;e, des variables d'environnement
    CGI/SSI suppl&eacute;mentaires sont cr&eacute;&eacute;es : <code>SSL_SERVER_CERT</code>,
    <code>SSL_CLIENT_CERT</code> et
    <code>SSL_CLIENT_CERT_CHAIN_</code><var>n</var> (avec <var>n</var> =
    0,1,2,..). Elles contiennent les certificats X.509 cod&eacute;s en PEM du
    serveur et du client pour la connexion HTTPS courante, et peuvent
    &ecirc;tre utilis&eacute;es par les scripts CGI pour une v&eacute;rification de
    certificat plus &eacute;labor&eacute;e. De plus, tous les autres certificats de la
    cha&icirc;ne de certificats du client sont aussi fournis. Tout ceci gonfle
    un peu l'environnement, et c'est la raison pour laquelle vous ne
    devez activer cette option qu'&agrave; la demande.</p>
</li>
<li><code>FakeBasicAuth</code>
    <p>
    Lorsque cette option est activ&eacute;e, le Nom Distinctif (DN) sujet du
    certificat client X509 est traduit en un nom d'utilisateur pour
    l'autorisation HTTP de base. Cela signifie que les m&eacute;thodes
    d'authentification standard d'Apache peuvent &ecirc;tre utilis&eacute;es pour le
    contr&ocirc;le d'acc&egrave;s. Le nom d'utilisateur est tout simplement le Sujet
    du certificat X509 du client (il peut &ecirc;tre d&eacute;termin&eacute; en utilisant la
    commande OpenSSL <code>openssl x509</code> : <code>openssl x509
    -noout -subject -in </code><var>certificat</var><code>.crt</code>).
    Notez qu'aucun mot de passe n'est envoy&eacute; par l'utilisateur. Chaque
    entr&eacute;e du fichier des utilisateurs doit comporter ce mot de passe :
    ``<code>xxj31ZMTZzkVA</code>'', qui est la version chiffr&eacute;e en DES
    du mot ``<code>password</code>''. Ceux qui travaillent avec un
    chiffrement bas&eacute; sur MD5 (par exemple sous FreeBSD ou BSD/OS,
    etc...) doivent utiliser le condens&eacute; MD5 suivant pour le m&ecirc;me mot :
    ``<code>$1$OXLyS...$Owx8s2/m9/gfkcRVXzgoE/</code>''.</p>

    <p>Notez que la directive <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicfake">AuthBasicFake</a></code> impl&eacute;ment&eacute;e par le
    module <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> peut &ecirc;tre utilis&eacute;e d'une
    mani&egrave;re plus g&eacute;n&eacute;rale comme simulation d'authentification basique,
    ce qui permet de contr&ocirc;ler la structure nom utilisateur/mot de
    passe.</p>
</li>
<li><code>StrictRequire</code>
    <p>
    Cette option <em>force</em> l'interdiction d'acc&egrave;s lorsque <code class="directive"><a href="#sslrequiressl">SSLRequireSSL</a></code> ou <code class="directive"><a href="#sslrequire">SSLRequire</a></code> a d&eacute;cid&eacute; que l'acc&egrave;s doit &ecirc;tre
    interdit. Sans l'option <code>StrictRequire</code>, il est possible pour
    d'autres directives d'autorisation (comme <code class="directive"><a href="../mod/mod_authz_core.html#requireany">&lt;RequireAny&gt;</a></code>) d'outrepasser l'interdiction d'acc&egrave;s
    de SSL et d'accorder tout de m&ecirc;me l'acc&egrave;s. Avec <code>SSLOptions
    +StrictRequire</code>, l'interdiction de <code>SSLRequireSSL</code> ou
    <code>SSLRequire</code> s'applique de mani&egrave;re inconditionnelle, sans tenir
    compte d'autres directives d'autorisation &eacute;ventuelles.</p>
</li>
<li><code>OptRenegotiate</code>
    <p>
    Cette option active la gestion optimis&eacute;e de la ren&eacute;gociation des
    connexions SSL intervenant lorsque les directives SSL sont utilis&eacute;es
    dans un contexte de r&eacute;pertoire. Par d&eacute;faut un sch&eacute;ma strict est
    appliqu&eacute;, et <em>chaque</em> reconfiguration des param&egrave;tres SSL au
    niveau du r&eacute;pertoire implique une phase de ren&eacute;gociation SSL
    <em>compl&egrave;te</em>. Avec cette option, mod_ssl essaie d'&eacute;viter les
    &eacute;changes non n&eacute;cessaires en effectuant des v&eacute;rifications de
    param&egrave;tres plus granulaires (mais tout de m&ecirc;me efficaces).
    N&eacute;anmoins, ces v&eacute;rifications granulaires peuvent ne pas correspondre
    &agrave; ce qu'attend l'utilisateur, et il est donc recommand&eacute; de n'activer
    cette option que dans un contexte de r&eacute;pertoire.</p>
</li>
<li><code>LegacyDNStringFormat</code>
    <p>
    Cette option permet d'agir sur la mani&egrave;re dont les valeurs des
    variables <code>SSL_{CLIENT,SERVER}_{I,S}_DN</code> sont format&eacute;es.
    Depuis la version 2.3.11, Apache HTTPD utilise par d&eacute;faut un format
    compatible avec la RFC 2253. Ce format utilise des virgules comme
    d&eacute;limiteurs entre les attributs, permet l'utilisation de caract&egrave;res
    non-ASCII (qui sont alors convertis en UTF8), &eacute;chappe certains
    caract&egrave;res sp&eacute;ciaux avec des slashes invers&eacute;s, et trie les attributs
    en pla&ccedil;ant l'attribut "C" en derni&egrave;re position.</p>

    <p>Si l'option <code>LegacyDNStringFormat</code> est pr&eacute;sente, c'est
    l'ancien format qui sera utilis&eacute; : les attributs sont tri&eacute;s avec
    l'attribut "C" en premi&egrave;re position, les s&eacute;parateurs sont des
    slashes non invers&eacute;s, les caract&egrave;res non-ASCII ne sont pas support&eacute;s
    et le support des caract&egrave;res sp&eacute;ciaux n'est pas fiable.
    </p>
</li>
</ul>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLOptions +FakeBasicAuth -StrictRequire
&lt;Files ~ "\.(cgi|shtml)$"&gt;
    SSLOptions +StdEnvVars -ExportCertData
&lt;/Files&gt;</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslpassphrasedialog">Directive <span id="SSLPassPhraseDialog">SSLPassPhraseDialog</span> <a title="Lien permanent" href="#sslpassphrasedialog" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>M&eacute;thode utilis&eacute;e pour entrer le mot de passe pour les cl&eacute;s
priv&eacute;es chiffr&eacute;es</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLPassPhraseDialog <var>type</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLPassPhraseDialog builtin</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Lors de son d&eacute;marrage, Apache doit lire les diff&eacute;rents fichiers de
certificats (voir la directive <code class="directive"><a href="#sslcertificatefile">SSLCertificateFile</a></code>) et de cl&eacute;s priv&eacute;es
(voir la directive <code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code>) des serveurs
virtuels o&ugrave; SSL est activ&eacute;. Comme, pour des raisons de s&eacute;curit&eacute;, les
fichiers de cl&eacute;s priv&eacute;es sont en g&eacute;n&eacute;ral chiffr&eacute;s,  mod_ssl doit
demander &agrave; l'administrateur un mot de passe pour d&eacute;chiffrer ces
fichiers. L'argument <var>type</var> permet de choisir la mani&egrave;re dont
cette demande peut &ecirc;tre formul&eacute;e parmi les trois suivantes :</p>
<ul>
<li><code>builtin</code>
    <p>
    C'est la m&eacute;thode par d&eacute;faut, et un dialogue interactive de terminal
    s'ouvre au cours du d&eacute;marrage juste avant qu'Apache ne se d&eacute;tache du
    terminal. A ce moment, l'administrateur doit entrer manuellement un
    mot de passe pour chaque fichier de cl&eacute; priv&eacute;e chiffr&eacute;. Etant donn&eacute;
    qu'il peut y avoir un grand nombre de serveurs virtuels configur&eacute;s
 avec SSL activ&eacute;, le protocole de r&eacute;utilisation suivant est utilis&eacute;
    pour minimiser le dialogue : lorsqu'un fichier de cl&eacute; priv&eacute;e est
    chiffr&eacute;, tous les mots de passe connus (au d&eacute;but, il n'y en a aucun,
    bien entendu) sont essay&eacute;s. Si l'un de ces mots de passe connus
    convient, aucun dialogue ne s'ouvrira pour ce fichier de
    cl&eacute; priv&eacute;e particulier. Si aucun ne convient, un autre mot de passe
    sera demand&eacute; &agrave; partir du terminal et sera mis en m&eacute;moire pour le
    fichier de cl&eacute; priv&eacute;e suivant (pour lequel il pourra &eacute;ventuellement
    &ecirc;tre r&eacute;utilis&eacute;).</p>
    <p>
    Cette m&eacute;thode conf&egrave;re &agrave; mod_ssl une grande souplesse (car pour N
    fichiers de cl&eacute; priv&eacute;e chiffr&eacute;s, vous <em>pouvez</em> utiliser N
    mots de passe diff&eacute;rents - mais vous devrez alors tous les fournir,
    bien entendu), tout en minimisant le dialogue de terminal (vous
    pouvez en effet utiliser un seul mot de passe pour les N fichiers de
    cl&eacute; priv&eacute;e et vous n'aurez alors &agrave; l'entrer qu'une seule
    fois).</p></li>

<li><code>|/chemin/vers/programme [arguments...]</code>

   <p>Ce mode permet d'utiliser un programme externe qui va se pr&eacute;senter
   comme une redirection vers un p&eacute;riph&eacute;rique d'entr&eacute;e particulier ; le
   texte de prompt standard utilis&eacute; pour le mode <code>builtin</code>
   est envoy&eacute; au programme sur <code>stdin</code>, et celui-ci doit
   renvoyer des mots de passe sur <code>stdout</code>. Si
   plusieurs mots de passe sont requis (ou si un mot de passe incorrect
   a &eacute;t&eacute; entr&eacute;), un texte de prompt suppl&eacute;mentaire sera &eacute;crit apr&egrave;s le
   retour du premier mot de passe, et d'autres mots de passe devront
   alors &ecirc;tre r&eacute;&eacute;crits.</p></li>

<li><code>exec:/chemin/vers/programme</code>
    <p>
    Ici, un programme externe est appel&eacute; au d&eacute;marrage du serveur pour
    chaque fichier de cl&eacute; priv&eacute;e chiffr&eacute;.Il est appel&eacute; avec deux
    arguments (le premier est de la forme
    ``<code>nom-serveur:port</code>'', le second
    est ``<code>RSA</code>'', ``<code>DSA</code>'', ``<code>ECC</code>''
    ou un index entier commen&ccedil;ant &agrave; 3 si plus de 3 cl&eacute;s ont &eacute;t&eacute;
    configur&eacute;es), qui
    indiquent pour quels serveur et algorithme il doit &eacute;crire le mot de
    passe correspondant sur <code>stdout</code>. Avec les versions 2.4.8
    (non r&eacute;alis&eacute;e) et
    2.4.9, il est appel&eacute; avec un seul argument, une cha&icirc;ne de la forme
    "<code>servername:portnumber:index</code>" (o&ugrave; <code>index</code>
    est un nombre entier commen&ccedil;ant &agrave; z&eacute;ro), qui sp&eacute;cifie le serveur,
    le port TCP et un num&eacute;ro de certificat. Le but recherch&eacute; est
    l'ex&eacute;cution de v&eacute;rifications de s&eacute;curit&eacute; pr&eacute;alables permettant de
    s'assurer que le syst&egrave;me n'est pas victime d'une attaque, et de ne
    fournir le mot de passe que si toutes les v&eacute;rifications ont &eacute;t&eacute;
    effectu&eacute;es avec succ&egrave;s.</p>
    <p>
    Ces v&eacute;rifications de s&eacute;curit&eacute;, ainsi que la mani&egrave;re dont le mot de
    passe est d&eacute;termin&eacute; peuvent &ecirc;tre aussi sophistiqu&eacute;s que vous le
    d&eacute;sirez. Mod_ssl ne d&eacute;finit que l'interface : un programme
    ex&eacute;cutable qui &eacute;crit le mot de passe sur <code>stdout</code>. Ni
    plus, ni moins ! Ainsi, si vous &ecirc;tes vraiment parano&iuml;aque en mati&egrave;re
    de s&eacute;curit&eacute;, voici votre interface. Tout le reste doit &ecirc;tre confi&eacute; &agrave;
    l'administrateur &agrave; titre d'exercice, car les besoins en s&eacute;curit&eacute;
    locale sont tr&egrave;s diff&eacute;rents.</p>
    <p>
    L'algorithme de r&eacute;utilisation est utilis&eacute; ici aussi. En d'autres
    termes, le programme externe n'est appel&eacute; qu'une fois par mot de
    passe unique.</p></li>
</ul>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLPassPhraseDialog "exec:/usr/local/apache/sbin/pp-filter"</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslprotocol">Directive <span id="SSLProtocol">SSLProtocol</span> <a title="Lien permanent" href="#sslprotocol" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Indique les versions du protocole SSL/TLS
disponibles</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProtocol [+|-]<var>protocole</var> ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLProtocol all -SSLv3 (jusqu'&agrave; la version 2.4.16 : all)</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir quelles versions du protocole SSL/TLS
seront accept&eacute;es lors de l'initialisation d'une nouvelle connexion.</p>
<p>
Les <var>protocole</var>s disponibles sont les suivants (sensibles &agrave; la
casse) :</p>
<ul>
<li><code>SSLv3</code>
    <p>
    Il s'agit du protocole Secure Sockets Layer (SSL) version 3.0 de
    Netscape Corporation. C'est le successeur de SSLv2 et le
    pr&eacute;d&eacute;cesseur de TLSv1, mais est consid&eacute;r&eacute; comme
    obsol&egrave;te dans la <a href="https://www.rfc-editor.org/rfc/rfc7568">RFC 7568</a>.</p></li>

<li><code>TLSv1</code>
    <p>
    Il s'agit du protocole  Transport Layer Security (TLS) version 1.0.  C'est
    le successeur de SSLv3, et il est d&eacute;fini dans la <a href="https://www.rfc-editor.org/rfc/rfc2246">RFC 2246</a>. Il est
    support&eacute; par la plupart des clients.</p></li>

<li><code>TLSv1.1</code> (&agrave; partir de la version 1.0.1 d'OpenSSL)
    <p>
    Une r&eacute;vision du protocole TLS 1.0 d&eacute;finie dans la <a href="https://www.rfc-editor.org/rfc/rfc4346">RFC 4346</a>.</p></li>

<li><code>TLSv1.2</code> (&agrave; partir de la version 1.0.1 d'OpenSSL)
    <p>
    Une r&eacute;vision du protocole TLS 1.1 d&eacute;finie dans la <a href="https://www.rfc-editor.org/rfc/rfc5246">RFC 5246</a>.</p></li>

<li><code>TLSv1.3</code> (&agrave; partir de la version 1.1.1 d'OpenSSL)
     <p>
     Une nouvelle version du protocole TLS d&eacute;finie dans la <a href="https://www.rfc-editor.org/rfc/rfc8446">RFC 8446</a>.</p></li>

<li><code>all</code>
    <p>
    C'est un raccourci pour ``<code>+SSLv3 +TLSv1</code>'' ou - &agrave; partir
    de la version 1.0.1 d'OpenSSL - ``<code>+SSLv3 +TLSv1 +TLSv1.1
    +TLSv1.2 +TLSv1.3</code>'' (sauf si OpenSSL a &eacute;t&eacute; compil&eacute; avec l'option
    ``no-ssl3'', auquel cas <code>all</code> n'inclura pas
    <code>+SSLv3</code>).</p></li>
</ul>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProtocol TLSv1</pre>
</div>
<div class="note">
<h3>La directive <code class="directive">SSLProtocol</code> et les serveurs virtuels
bas&eacute;s sur le nom</h3>
<p>
Avant OpenSSL 1.1.1, et m&ecirc;me si l'indication du nom de serveur (Server Name
Indication ou SNI) permettait de d&eacute;terminer le serveur virtuel cible assez t&ocirc;t
au cours de la n&eacute;gociation TLS, il &eacute;tait impossible de changer de version de
protocole TLS &agrave; ce point, si bien que le <code class="directive">SSLProtocol</code>
n&eacute;goci&eacute; se basait toujours sur celui du <em>serveur virtuel de base</em> (le
premier serveur virtuel d&eacute;clar&eacute; avec le couple <code>IP:port</code> de la
connexion).
</p>
<p>
A partir de la version 2.4.42, si le serveur HTTP Apache est compil&eacute; avec une
version 1.1.1. ou sup&eacute;rieure d'OpenSSL, et si le client fournit la SNI dans la
n&eacute;gociation TLS, le <code class="directive">SSLProtocol</code> de chaque serveur virtuel
(bas&eacute; sur le nom) pourra &ecirc;tre pris en compte et le sera.
</p>
<p>
A des fins de compatibilit&eacute; avec les versions pr&eacute;c&eacute;dentes, si un serveur virtuel
bas&eacute; sur le nom n'a aucune directive <code class="directive">SSLProtocol</code> d&eacute;finie,
c'est le protocole du serveur virtuel de base qui s'appliquera, <strong>&agrave;
moins</strong> qu'une directive <code class="directive">SSLProtocol</code> ne soit
configur&eacute;e au niveau global, auquel cas c'est le protocole d&eacute;fini par cette
directive qui s'appliquera (ce dernier cas rel&egrave;ve cependant plus d'un
comportement logique que d'un souci de compatibilit&eacute;).
</p>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycacertificatefile">Directive <span id="SSLProxyCACertificateFile">SSLProxyCACertificateFile</span> <a title="Lien permanent" href="#sslproxycacertificatefile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la concat&eacute;nation des certificats de CA
cod&eacute;s en PEM pour l'authentification des serveurs distants</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCACertificateFile <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir le fichier <em>tout-en-un</em> o&ugrave; sont
stock&eacute;s les certificats des Autorit&eacute;s de Certification (CA) pour les
<em>serveurs distants</em> auxquels vous avez &agrave; faire. On les utilise
lors de l'authentification du serveur distant. Un tel fichier contient
la simple concat&eacute;nation des diff&eacute;rents fichiers de certificats cod&eacute;s en
PEM, class&eacute;s par ordre de pr&eacute;f&eacute;rence. On peut utiliser cette directive &agrave;
la place et/ou en compl&eacute;ment de la directive <code class="directive"><a href="#sslproxycacertificatepath">SSLProxyCACertificatePath</a></code>.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCACertificateFile
"/usr/local/apache2/conf/ssl.crt/ca-bundle-serveur.distant.crt"</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycacertificatepath">Directive <span id="SSLProxyCACertificatePath">SSLProxyCACertificatePath</span> <a title="Lien permanent" href="#sslproxycacertificatepath" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>R&eacute;pertoire des certificats de CA cod&eacute;s en PEM pour
l'authentification des serveurs distants</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCACertificatePath <var>chemin-r&eacute;pertoire</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>
<p>
Cette directive permet de sp&eacute;cifier le r&eacute;pertoire o&ugrave; sont stock&eacute;s les
certificats des Autorit&eacute;s de Certification (CAs) pour les serveurs
distants auxquels vous avez &agrave; faire. On les utilise pour v&eacute;rifier le
certificat du serveur distant lors de l'authentification de ce
dernier.</p>
<p>
Les fichiers de ce r&eacute;pertoire doivent &ecirc;tre cod&eacute;s en PEM et ils sont
acc&eacute;d&eacute;s via des noms de fichier sous forme de condens&eacute;s ou hash. Il ne
suffit donc pas de placer les fichiers de certificats dans ce r&eacute;pertoire
: vous devez aussi cr&eacute;er des liens symboliques nomm&eacute;s
<var>valeur-de-hashage</var><code>.N</code>, et vous devez toujours vous
assurer que ce r&eacute;pertoire contient les liens symboliques appropri&eacute;s.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCACertificatePath "/usr/local/apache2/conf/ssl.crt/"</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycarevocationcheck">Directive <span id="SSLProxyCARevocationCheck">SSLProxyCARevocationCheck</span> <a title="Lien permanent" href="#sslproxycarevocationcheck" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la v&eacute;rification des r&eacute;vocations bas&eacute;e sur les CRLs
pour l'authentification du serveur distant</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCARevocationCheck chain|leaf|none</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLProxyCARevocationCheck none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>
<p>
Active la v&eacute;rification des r&eacute;vocations bas&eacute;e sur les Listes de
r&eacute;vocations de Certificats (CRL) pour les <em>serveurs distants</em>
auxquels vous vous connectez. A moins une des directives <code class="directive"><a href="#sslproxycarevocationfile">SSLProxyCARevocationFile</a></code> ou <code class="directive"><a href="#sslproxycarevocationpath">SSLProxyCARevocationPath</a></code> doit &ecirc;tre d&eacute;finie.
Lorsque cette directive est d&eacute;finie &agrave; <code>chain</code> (valeur
recommand&eacute;e), les v&eacute;rifications CRL sont effectu&eacute;es sur tous les
certificats de la cha&icirc;ne, alors que la valeur <code>leaf</code> limite
la v&eacute;rification au certificat hors cha&icirc;ne (la feuille).
</p>
<div class="note">
<h3>Lorsque la directive est d&eacute;finie &agrave; <code>chain</code> ou
<code>leaf</code>, les CRLs doivent &ecirc;tre disponibles pour que la
validation r&eacute;ussisse</h3>
<p>
Avant la version 2.3.15, les v&eacute;rifications CRL dans mod_ssl
r&eacute;ussissaient m&ecirc;me si aucune CRL n'&eacute;tait trouv&eacute;e dans les chemins
d&eacute;finis par les directives <code class="directive"><a href="#sslproxycarevocationfile">SSLProxyCARevocationFile</a></code> ou <code class="directive"><a href="#sslproxycarevocationpath">SSLProxyCARevocationPath</a></code>. Le comportement a
chang&eacute; avec l'introduction de cette directive : lorsque la v&eacute;rification
est activ&eacute;e, les CRLs <em>doivent</em> &ecirc;tre pr&eacute;sentes pour que la
validation r&eacute;ussisse ; dans le cas contraire, elle &eacute;chouera avec une
erreur <code>"CRL introuvable"</code>.
</p>
</div>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCARevocationCheck chain</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycarevocationfile">Directive <span id="SSLProxyCARevocationFile">SSLProxyCARevocationFile</span> <a title="Lien permanent" href="#sslproxycarevocationfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la concat&eacute;nation des CRLs de CA cod&eacute;s en
PEM pour l'authentification des serveurs distants</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCARevocationFile <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir le fichier <em>tout-en-un</em> o&ugrave; sont
rassembl&eacute;es les Listes de R&eacute;vocation de Certificats (CRLs) des Autorit&eacute;s
de certification (CAs) pour les <em>serveurs distants</em> auxquels vous
avez &agrave; faire. On les utilise pour l'authentification des serveurs
distants. Un tel fichier contient la simple concat&eacute;nation des diff&eacute;rents
fichiers de CRLs cod&eacute;s en PEM, class&eacute;s par ordre de pr&eacute;f&eacute;rence. Cette
directive peut &ecirc;tre utilis&eacute;e &agrave; la place et/ou en compl&eacute;ment de la
directive <code class="directive"><a href="#sslproxycarevocationpath">SSLProxyCARevocationPath</a></code>.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCARevocationFile
"/usr/local/apache2/conf/ssl.crl/ca-bundle-serveur.distant.crl"</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycarevocationpath">Directive <span id="SSLProxyCARevocationPath">SSLProxyCARevocationPath</span> <a title="Lien permanent" href="#sslproxycarevocationpath" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>R&eacute;pertoire des CRLs de CA cod&eacute;s en PEM pour
l'authentification des serveurs distants</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCARevocationPath <var>chemin-r&eacute;pertoire</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir le r&eacute;pertoire o&ugrave; sont stock&eacute;es les
Listes de R&eacute;vocation de Certificats (CRL) des Autorit&eacute;s de Certification
(CAs) pour les serveurs distants auxquels vous avez &agrave; faire. On les
utilise pour r&eacute;voquer les certificats des serveurs distants au cours de
l'authentification de ces derniers.</p>
<p>
Les fichiers de ce r&eacute;pertoire doivent &ecirc;tre cod&eacute;s en PEM et ils sont
acc&eacute;d&eacute;s via des noms de fichier sous forme de condens&eacute;s ou hash. Il ne
suffit donc pas de placer les fichiers de CRL dans ce r&eacute;pertoire
: vous devez aussi cr&eacute;er des liens symboliques nomm&eacute;s
<var>valeur-de-hashage</var><code>.rN</code>, et vous devez toujours vous
assurer que ce r&eacute;pertoire contient les liens symboliques appropri&eacute;s.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCARevocationPath "/usr/local/apache2/conf/ssl.crl/"</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycheckpeercn">Directive <span id="SSLProxyCheckPeerCN">SSLProxyCheckPeerCN</span> <a title="Lien permanent" href="#sslproxycheckpeercn" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration de la v&eacute;rification du champ CN du certificat
du serveur distant
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCheckPeerCN on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLProxyCheckPeerCN on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir si le champ CN du certificat du serveur
distant doit &ecirc;tre compar&eacute; au nom de serveur de l'URL de la requ&ecirc;te. S'ils ne
correspondent pas, un code d'&eacute;tat 502 (Bad Gateway) est envoy&eacute;. A partir de la
version 2.4.5, SSLProxyCheckPeerCN a &eacute;t&eacute; remplac&eacute; par <code class="directive"><a href="#sslproxycheckpeername">SSLProxyCheckPeerName</a></code>.
</p>
<p>
De la version 2.4.5 &agrave; la version 2.4.20, sp&eacute;cifier <code>SSLProxyCheckPeerName
off</code> &eacute;tait suffisant pour obtenir ce comportement (car la valeur par
d&eacute;faut de <code>SSLProxyCheckPeerCN</code> &eacute;tait <code>on</code>). Avec ces
versions, les deux directives doivent &ecirc;tre d&eacute;finies &agrave; <code>off</code> pour
&eacute;viter toute validation du nom de certificat du serveur distant, et de
nombreux utilisateurs ont signal&eacute; ce comportement comme tr&egrave;s perturbant.
</p>
<p>
A partir de la version 2.4.21, toutes les configurations qui activent au moins
une des deux directives <code>SSLProxyCheckPeerName</code> ou
<code>SSLProxyCheckPeerCN</code> adopteront le nouveau comportement de la
directive <code class="directive"><a href="#sslproxycheckpeername">SSLProxyCheckPeerName</a></code>, et
toutes les configurations qui d&eacute;sactivent une des deux directives
<code>SSLProxyCheckPeerName</code> ou <code>SSLProxyCheckPeerCN</code>
&eacute;viteront toute validation du nom de certificat du serveur distant. Seule la
configuration suivante permettra de retrouver la comparaison de CN
traditionnelle pour les versions 2.4.21 et sup&eacute;rieures :
</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCheckPeerCN on
SSLProxyCheckPeerName off</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycheckpeerexpire">Directive <span id="SSLProxyCheckPeerExpire">SSLProxyCheckPeerExpire</span> <a title="Lien permanent" href="#sslproxycheckpeerexpire" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration de la v&eacute;rification de l'expiration du
certificat du serveur distant
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCheckPeerExpire on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLProxyCheckPeerExpire on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir si l'expiration du certificat du
serveur distant doit &ecirc;tre v&eacute;rifi&eacute;e ou non. Si la v&eacute;rification &eacute;choue, un
code d'&eacute;tat 502 (Bad Gateway) est envoy&eacute;.
</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCheckPeerExpire on</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycheckpeername">Directive <span id="SSLProxyCheckPeerName">SSLProxyCheckPeerName</span> <a title="Lien permanent" href="#sslproxycheckpeername" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure la v&eacute;rification du nom d'h&ocirc;te dans les
certificats serveur distants
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCheckPeerName on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLProxyCheckPeerName on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible &agrave; partir de la version 2.4.5 du serveur HTTP
Apache<br>
Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>
<p>
Cette directive permet de configurer la v&eacute;rification du nom d'h&ocirc;te pour
les certificats serveur lorsque mod_ssl agit en tant que client SSL. La
v&eacute;rification r&eacute;ussit si le nom d'h&ocirc;te de l'URI de la requ&ecirc;te correspond &agrave; un
des attributs CN du sujet du certificat, ou &agrave; l'extension subjectAltName. Si la
v&eacute;rification &eacute;choue, la requ&ecirc;te SSL
avorte, et un code d'erreur 502 (Bad Gateway) est renvoy&eacute;.
</p>
<p>
Les caract&egrave;res g&eacute;n&eacute;riques sont support&eacute;s dans certains cas bien sp&eacute;cifiques :
une entr&eacute;e subjectAltName de type dNSName ou les attributs CN
commen&ccedil;ant par <code>*.</code> correspondront &agrave; tout nom d'h&ocirc;te comportant
le m&ecirc;me nombre de champs et le m&ecirc;me suffixe ; par exemple,
<code>*.example.org</code> correspondra &agrave; <code>foo.example.org</code>,
mais pas &agrave; <code>foo.bar.example.org</code> car le nombre d'&eacute;l&eacute;ments dans les
nom est diff&eacute;rent.
</p>
<p>
Cette fonctionnalit&eacute; a &eacute;t&eacute; introduite avec la version 2.4.5 et l'emporte sur la
directive <code class="directive"><a href="#sslproxycheckpeercn">SSLProxyCheckPeerCN</a></code> qui ne
comparait que la valeur exacte du premier attribut CN avec le nom d'h&ocirc;te.
Cependant, de nombreux utilisateurs &eacute;taient d&eacute;concert&eacute;s par le comportement
induit par l'utilisation de ces deux directives individuellement, si bien que ce
comportement a &eacute;t&eacute; am&eacute;lior&eacute; avec la version 2.4.21. Voir la description de la
directive <code class="directive"><a href="#sslproxycheckpeercn">SSLProxyCheckPeerCN</a></code> pour le
comportement original et des d&eacute;tails &agrave; propos de ces am&eacute;liorations.
</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxyciphersuite">Directive <span id="SSLProxyCipherSuite">SSLProxyCipherSuite</span> <a title="Lien permanent" href="#sslproxyciphersuite" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Algorithmes de chiffrement disponibles pour la n&eacute;gociation
lors de l'initialisation d'une connexion SSL de mandataire</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCipherSuite [<var>protocol</var>] <var>cipher-spec</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLProxyCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>
<p>Cette directive est &eacute;quivalente &agrave; la directive <code class="directive"><a href="#sslciphersuite">SSLCipherSuite</a></code>, mais s'applique &agrave; une connexion de
mandataire. Veuillez vous reporter &agrave; la directive <code class="directive"><a href="#sslciphersuite">SSLCipherSuite</a></code> pour plus d'informations.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxyengine">Directive <span id="SSLProxyEngine">SSLProxyEngine</span> <a title="Lien permanent" href="#sslproxyengine" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interrupteur marche/arr&ecirc;t du moteur de mandataire
SSL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyEngine on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLProxyEngine off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>
<p>
Cette directive permet d'activer/d&eacute;sactiver l'utilisation du moteur de
protocole SSL/TLS pour le mandataire. On l'utilise en g&eacute;n&eacute;ral &agrave;
l'int&eacute;rieur d'une section <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> pour activer le protocole SSL/TLS
dans le cadre d'un mandataire pour un serveur virtuel particulier. Par
d&eacute;faut, le moteur de protocole SSL/TLS est d&eacute;sactiv&eacute; pour la fonction de
mandataire du serveur principal et de tous les serveurs virtuels
configur&eacute;s.</p>

<p>Notez que la directive <code class="directive">SSLProxyEngine</code> ne doit
g&eacute;n&eacute;ralement pas &ecirc;tre utilis&eacute;e dans le cadre d'un serveur virtuel qui agit en
tant que mandataire direct (via les directives <code class="directive"><a href="../mod/mod_proxy.html#proxy">&lt;Proxy&gt;</a></code> ou <code class="directive"><a href="../mod/mod_proxy.html#proxyrequests">ProxyRequests</a></code>).
<code class="directive">SSLProxyEngine</code> n'est pas n&eacute;cessaire pour activer un
serveur mandataire direct pour les requ&ecirc;tes SSL/TLS.</p>


<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;VirtualHost _default_:443&gt;
    SSLProxyEngine on
    #...
&lt;/VirtualHost&gt;</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxymachinecertificatechainfile">Directive <span id="SSLProxyMachineCertificateChainFile">SSLProxyMachineCertificateChainFile</span> <a title="Lien permanent" href="#sslproxymachinecertificatechainfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier de certificats de CA encod&eacute;s PEM concat&eacute;n&eacute;s permettant au
mandataire de choisir un certificat</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyMachineCertificateChainFile <var>nom-fichier</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir le fichier global o&ugrave; est enregistr&eacute;e
la cha&icirc;ne de certification pour tous les certificats clients utilis&eacute;s.
Elle est n&eacute;cessaire si le serveur distant pr&eacute;sente une liste de
certificats de CA qui ne sont pas les signataires directs d'un des
certificats clients configur&eacute;s.
</p>
<p>
Ce fichier contient tout simplement la concat&eacute;nation des diff&eacute;rents
fichiers de certificats encod&eacute;s PEM. Au d&eacute;marrage, chaque certificat
client configur&eacute; est examin&eacute; et une cha&icirc;ne de certification est
construite.
</p>
<div class="warning"><h3>Avertissement en mati&egrave;re de s&eacute;curit&eacute;</h3>
<p>Si cette directive est d&eacute;finie, tous les certificats contenus dans le
fichier sp&eacute;cifi&eacute; seront consid&eacute;r&eacute;s comme &eacute;tant de confiance, comme s'ils
&eacute;taient aussi d&eacute;sign&eacute;s dans la directive <code class="directive"><a href="#sslproxycacertificatefile">SSLProxyCACertificateFile</a></code>.</p>
</div>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyMachineCertificateChainFile
"/usr/local/apache2/conf/ssl.crt/proxyCA.pem"</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxymachinecertificatefile">Directive <span id="SSLProxyMachineCertificateFile">SSLProxyMachineCertificateFile</span> <a title="Lien permanent" href="#sslproxymachinecertificatefile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la concat&eacute;nation des cl&eacute;s et certificats
clients cod&eacute;s en PEM que le mandataire doit utiliser</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyMachineCertificateFile <var>chemin-fichier</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est pris en charge &agrave; partir de la
version 2.4.30 du serveur HTTP Apache<br>
L'inclusion de certificats non-feuilles (CA) est prise en charge &agrave; partir de la
version 2.4.59.</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir le fichier tout-en-un o&ugrave; sont stock&eacute;s
les cl&eacute;s et certificats permettant au serveur mandataire de
s'authentifier aupr&egrave;s des serveurs distants.
</p>
<p>
Le fichier sp&eacute;cifi&eacute; est la simple concat&eacute;nation des diff&eacute;rents fichiers de
certificats cod&eacute;s en PEM. Cette directive s'utilise &agrave; la place ou en compl&eacute;ment
de la directive <code>SSLProxyMachineCertificatePath</code>. Le fichier sp&eacute;cifi&eacute;
peut contenir un nombre quelconque de paires certificat client/cl&eacute; priv&eacute;e
associ&eacute;e, et chaque paire peut &ecirc;tre sp&eacute;cifi&eacute;e selon l'ordre (certificat, cl&eacute;) ou
(cl&eacute;, certificat). Des certificats non-feuilles (CA) peuvent aussi &ecirc;tre inclus
dans le fichier et sont trait&eacute;s comme s'ils avaient &eacute;t&eacute; d&eacute;finis &agrave; l'aide de la
directive <code class="directive"><a href="#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile</a></code>.
</p>

<p>Lorsqu'un serveur distant sollicite le serveur pour obtenir un certificat
client, ce dernier doit fournir une liste de <em>noms d'autorit&eacute;s de
certification acceptables</em> au cours de la n&eacute;gociation. Si cette liste n'est
<em>pas</em> fournie, <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> utilisera la premi&egrave;re paire certificat/cl&eacute;
client d&eacute;finie. Si par contre cette liste <em>est</em> fournie,
<code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> va la parcourir afin de trouver un certificat client
d&eacute;fini qui a &eacute;t&eacute; fourni soit directement par l'autorit&eacute; de certification
consid&eacute;r&eacute;e, soit indirectement via un nombre quelconque de certificats d'autorit&eacute;s de
certification interm&eacute;diaires. La cha&icirc;ne de certificats d'autorit&eacute;s de
certification interm&eacute;diaires peut &ecirc;tre construite &agrave; partir de ceux qui sont
inclus dans le fichier ou configur&eacute;s
&agrave; l'aide de la directive <code class="directive"><a href="#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile</a></code>. Le premier
certificat d&eacute;fini correspondant sera alors fourni comme r&eacute;ponse au cours de la
n&eacute;gociation</p>

<p>Si la liste de noms de CA <em>est</em> fournie au serveur distant, et si
<em>aucun</em> certificat client correspondant n'est trouv&eacute;, aucun certificat
client ne sera fourni par <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>, ce qui fera probablement
&eacute;chouer la n&eacute;gociation SSL/TLS (en fonction de la configuration du serveur
distant).</p>

<div class="warning">
<p>Actuellement, les cl&eacute;s priv&eacute;es chiffr&eacute;es ne sont pas support&eacute;es.</p>
</div>
<div class="warning">
<p>Seules les cl&eacute;s au format PKCS1 RSA, DSA ou EC sont support&eacute;es. Les cl&eacute;s
au format PKCS8, autrement dit celles commen&ccedil;ant par "<code>-----BEGIN
PRIVATE KEY-----</code>", doivent &ecirc;tre converties via une commande du style
"<code>openssl rsa -in private-pkcs8.pem -outform pem</code>".</p>
</div>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyMachineCertificateFile
"/usr/local/apache2/conf/ssl.crt/proxy.pem"</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxymachinecertificatepath">Directive <span id="SSLProxyMachineCertificatePath">SSLProxyMachineCertificatePath</span> <a title="Lien permanent" href="#sslproxymachinecertificatepath" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>R&eacute;pertoire des cl&eacute;s et certificats clients cod&eacute;s en PEM que
le mandataire doit utiliser</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyMachineCertificatePath <var>chemin-r&eacute;pertoire</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir le r&eacute;pertoire o&ugrave; sont stock&eacute;s les cl&eacute;s
et certificats clients permettant au serveur mandataire de s'authentifier aupr&egrave;s
des serveurs distants.
</p>
<p>mod_ssl va essayer de charger tous les fichiers contenus dans le r&eacute;pertoire
sp&eacute;cifi&eacute;, comme si ces derniers &eacute;taient d&eacute;finis individuellement via la
directive <code class="directive"><a href="#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile</a></code>.</p>

<div class="warning">
<p>Actuellement, les cl&eacute;s priv&eacute;es chiffr&eacute;es ne sont pas support&eacute;es.</p>
</div>
<div class="warning">
<p>Seules les cl&eacute;s au format PKCS1 RSA, DSA ou EC sont support&eacute;es. Les cl&eacute;s
au format PKCS8, autrement dit celles commen&ccedil;ant par "<code>-----BEGIN
PRIVATE KEY-----</code>", doivent &ecirc;tre converties via une commande du style
"<code>openssl rsa -in private-pkcs8.pem -outform pem</code>".</p>
</div>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyMachineCertificatePath "/usr/local/apache2/conf/proxy.crt/"</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxyprotocol">Directive <span id="SSLProxyProtocol">SSLProxyProtocol</span> <a title="Lien permanent" href="#sslproxyprotocol" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finit les protocoles SSL disponibles pour la fonction de
mandataire</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyProtocol [+|-]<var>protocole</var> ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLProxyProtocol all -SSLv3 (jusqu'&agrave; la version 2.4.16: all)</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>

<p>
Cette directive permet de d&eacute;finir les protocoles SSL que mod_ssl peut
utiliser lors de l'&eacute;laboration de son environnement de serveur pour la
fonction de mandataire. Il ne se connectera qu'aux serveurs utilisant un
des protocoles sp&eacute;cifi&eacute;s.</p>
<p>Veuillez vous reporter &agrave; la directive <code class="directive"><a href="#sslprotocol">SSLProtocol</a></code> pour plus d'informations.
</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxyverify">Directive <span id="SSLProxyVerify">SSLProxyVerify</span> <a title="Lien permanent" href="#sslproxyverify" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Niveau de v&eacute;rification du certificat du serveur
distant</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyVerify <var>niveau</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLProxyVerify none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>

<p>Lorsqu'un mandataire est configur&eacute; pour faire suivre les requ&ecirc;tes
vers un serveur SSL distant, cette directive permet de configurer la
v&eacute;rification du certificat de ce serveur distant.</p>

<p>
Les valeurs de <var>niveau</var>x disponibles sont les suivantes :</p>
<ul>
<li><strong>none</strong>:
     aucun certificat n'est requis pour le serveur distant</li>
<li><strong>optional</strong>:
     le serveur distant <em>peut</em> pr&eacute;senter un certificat valide</li>
<li><strong>require</strong>:
     le serveur distant <em>doit</em> pr&eacute;senter un certificat valide</li>
<li><strong>optional_no_ca</strong>:
     le serveur distant peut pr&eacute;senter un certificat valide<br>
     mais il n'est pas n&eacute;cessaire qu'il soit v&eacute;rifiable (avec succ&egrave;s).</li>
</ul>
<p>En pratique, seuls les niveaux <strong>none</strong> et
<strong>require</strong> sont vraiment int&eacute;ressants, car le niveau
<strong>optional</strong> ne fonctionne pas avec tous les serveurs, et
le niveau <strong>optional_no_ca</strong> va tout &agrave; fait &agrave; l'encontre de
l'id&eacute;e que l'on peut se faire de l'authentification (mais peut tout de
m&ecirc;me &ecirc;tre utilis&eacute; pour &eacute;tablir des pages de test SSL, etc...).</p>

<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyVerify require</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxyverifydepth">Directive <span id="SSLProxyVerifyDepth">SSLProxyVerifyDepth</span> <a title="Lien permanent" href="#sslproxyverifydepth" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Niveau de profondeur maximum dans les certificats de CA
lors de la v&eacute;rification du certificat du serveur distant</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyVerifyDepth <var>niveau</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLProxyVerifyDepth 1</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, section proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Le contexte d'une section proxy est support&eacute; &agrave; partir de la
version 2.4.30 du serveur HTTP Apache</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir le niveau de profondeur maximum
jusqu'auquel mod_ssl doit aller au cours de sa v&eacute;rification avant de
d&eacute;cider que le serveur distant ne poss&egrave;de pas de certificat valide.</p>
<p>
La profondeur correspond en fait au nombre maximum de fournisseurs de
certificats interm&eacute;diaires, c'est &agrave; dire le nombre maximum de
certificats
de CA que l'on peut consulter lors de la v&eacute;rification du certificat du
serveur distant. Une profondeur de 0 signifie que seuls les certificats
de serveurs distants auto-sign&eacute;s sont accept&eacute;s, et la profondeur par
d&eacute;faut de 1 que le certificat du serveur distant peut &ecirc;tre soit
auto-sign&eacute;, soit sign&eacute; par une CA connue directement du serveur (en
d'autres termes, le certificat de CA est r&eacute;f&eacute;renc&eacute; par la directive
<code class="directive"><a href="#sslproxycacertificatepath">SSLProxyCACertificatePath</a></code>),
etc...</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyVerifyDepth 10</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslrandomseed">Directive <span id="SSLRandomSeed">SSLRandomSeed</span> <a title="Lien permanent" href="#sslrandomseed" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Source de d&eacute;clenchement du G&eacute;n&eacute;rateur de Nombres
Pseudo-Al&eacute;atoires (PRNG)</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLRandomSeed <var>contexte</var> <var>source</var>
[<var>nombre</var>]</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir une ou plusieurs sources de
d&eacute;clenchement du G&eacute;n&eacute;rateur de Nombres Pseudo-Al&eacute;atoires (PRNG) dans
OpenSSL au d&eacute;marrage du serveur (si <var>contexte</var> a pour valeur
<code>startup</code>) et/ou juste avant l'&eacute;tablissement d'une nouvelle
connexion SSL (si <var>contexte</var> a pour valeur <code>connect</code>).
Cette directive ne peut &ecirc;tre utilis&eacute;e qu'au niveau du serveur global car
le PRNG est un service global.</p>
<p>
Les diff&eacute;rentes valeurs de <var>source</var> disponibles sont :</p>
<ul>
<li><code>builtin</code>
    <p>Cette source de d&eacute;clenchement int&eacute;gr&eacute;e est toujours disponible.  Son
    utilisation consomme un minimum de cycles CPU en cours d'ex&eacute;cution, et son
    utilisation ne pr&eacute;sente de ce fait aucun probl&egrave;me. La source utilis&eacute;e pour
    d&eacute;clencher le PRNG contient la date courante, l'identifiant du processus
    courant et un extrait de 128 octets al&eacute;atoirement choisi dans la pile. Ceci
    pr&eacute;sente un inconv&eacute;nient car le caract&egrave;re al&eacute;atoire de cette source n'est
    pas vraiment fort, et au d&eacute;marrage (lorsque la structure d'&eacute;changes n'est
    pas encore disponible), cette source ne produit que quelques octets
    d'entropie.  Vous devez donc toujours utiliser une source de d&eacute;clenchement
    additionnelle, au moins pour le d&eacute;marrage.</p></li>
<li><code>file:/chemin/vers/source</code>
    <p>
    Cette variante utilise un fichier externe
    <code>file:/chemin/vers/source</code> comme source de d&eacute;clenchement
    du PRNG. Lorsque <var>nombre</var> est sp&eacute;cifi&eacute;, seuls les
    <var>nombre</var> premiers octets du fichier forment l'entropie (et
    <var>nombre</var> est fourni comme premier argument &agrave;
    <code>/chemin/vers/source</code>). Lorsque <var>nombre</var> n'est pas
    sp&eacute;cifi&eacute;, l'ensemble du fichier forme l'entropie (et <code>0</code>
    est fourni comme premier argument &agrave;
    <code>/chemin/vers/source</code>). Utilisez cette source en
    particulier au d&eacute;marrage, par exemple avec un fichier de
    p&eacute;riph&eacute;rique <code>/dev/random</code> et/ou
    <code>/dev/urandom</code> (qui sont en g&eacute;n&eacute;ral pr&eacute;sent sur les
    plate-formes d&eacute;riv&eacute;es d'Unix modernes comme FreeBSD et Linux).</p>
    <p><em>Soyez cependant prudent</em> : en g&eacute;n&eacute;ral,
    <code>/dev/random</code> ne fournit que l'entropie dont il dispose
    r&eacute;ellement ; en d'autres termes, lorsque vous demandez 512 octets
    d'entropie, si le p&eacute;riph&eacute;rique ne dispose que de 100 octets, deux
    choses peuvent se produire : sur certaines plates-formes, vous ne
    recevez que les 100 octets, alors que sur d'autres, la lecture se
    bloque jusqu'&agrave; ce qu'un nombre suffisant d'octets soit disponible
    (ce qui peut prendre beaucoup de temps). Il est pr&eacute;f&eacute;rable ici
    d'utiliser le p&eacute;riph&eacute;rique <code>/dev/urandom</code>, car il ne se
    bloque jamais et fournit vraiment la quantit&eacute; de donn&eacute;es demand&eacute;es.
    Comme inconv&eacute;nient, les donn&eacute;es re&ccedil;ues ne sont pas forc&eacute;ment de la
    meilleure qualit&eacute;.</p></li>

<li><code>exec:/chemin/vers/programme</code>
    <p>
    Cette variante utilise un ex&eacute;cutable externe
    <code>/chemin/vers/programme</code> comme source de d&eacute;clenchement du
    PRNG. Lorsque <var>nombre</var> est sp&eacute;cifi&eacute;, seules les
    <var>nombre</var> premiers octets de son flux <code>stdout</code>
    forment l'entropie. Lorsque <var>nombre</var> n'est pas sp&eacute;cifi&eacute;,
    l'int&eacute;gralit&eacute; des donn&eacute;es produites sur <code>stdout</code> forment
    l'entropie. N'utilisez cette variante qu'au d&eacute;marrage o&ugrave; une source
    de d&eacute;clenchement fortement al&eacute;atoire est n&eacute;cessaire, en utilisant
    un programme externe (comme dans l'exemple
    ci-dessous avec l'utilitaire <code>truerand</code> bas&eacute; sur la
    biblioth&egrave;que <em>truerand</em> de AT&amp;T que vous trouverez
    dans la distribution de mod_ssl). Bien entendu, l'utilisation de
    cette variante dans un contexte "connection" ralentit le serveur de
    mani&egrave;re trop importante, et en g&eacute;n&eacute;ral, vous devez donc &eacute;viter
    d'utiliser des programmes externes dans ce contexte.</p></li>
<li><code>egd:/chemin/vers/socket-egd</code> (Unix seulement)
    <p>Cette variante utilise le socket de domaine Unix du D&eacute;mon
    G&eacute;n&eacute;rateur d'Entropie externe ou Entropy Gathering Daemon ou EGD
    (voir <a href="http://www.lothar.com/tech/crypto/">http://www.lothar.com/tech
    /crypto/</a>) pour d&eacute;clencher le PRNG. N'utilisez cette variante que
    si votre plate-forme ne poss&egrave;de pas de p&eacute;riph&eacute;rique random ou
    urandom.</p></li>
</ul>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRandomSeed startup builtin
SSLRandomSeed startup "file:/dev/random"
SSLRandomSeed startup "file:/dev/urandom" 1024
SSLRandomSeed startup "exec:/usr/local/bin/truerand" 16
SSLRandomSeed connect builtin
SSLRandomSeed connect "file:/dev/random"
SSLRandomSeed connect "file:/dev/urandom" 1024</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslrenegbuffersize">Directive <span id="SSLRenegBufferSize">SSLRenegBufferSize</span> <a title="Lien permanent" href="#sslrenegbuffersize" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finit la taille du tampon de ren&eacute;gociation
SSL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLRenegBufferSize <var>taille</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLRenegBufferSize 131072</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autoris&eacute;es:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>

<p>Si une ren&eacute;gociation SSL est requise dans un contexte de r&eacute;pertoire,
par exemple avec l'utilisation de <code class="directive"><a href="#sslverifyclient">SSLVerifyClient</a></code> dans un bloc Directory ou
Location, mod_ssl doit mettre en tampon en m&eacute;moire tout corps de requ&ecirc;te
HTTP en attendant qu'une nouvelle initialisation de connexion SSL puisse
&ecirc;tre effectu&eacute;e. Cette directive permet de d&eacute;finir la quantit&eacute; de m&eacute;moire
&agrave; allouer pour ce tampon.</p>

<div class="warning"><p>
Notez que dans de nombreuses configurations, le client qui envoie un
corps de requ&ecirc;te n'est pas forc&eacute;ment digne de confiance, et l'on doit
par cons&eacute;quent prendre en consid&eacute;ration la possibilit&eacute; d'une attaque de
type d&eacute;ni de service lorsqu'on modifie la valeur de cette directive.
</p></div>

<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRenegBufferSize 262144</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslrequire">Directive <span id="SSLRequire">SSLRequire</span> <a title="Lien permanent" href="#sslrequire" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>N'autorise l'acc&egrave;s que lorsqu'une expression bool&eacute;enne
complexe et arbitraire est vraie</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLRequire <var>expression</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autoris&eacute;es:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<div class="note"><h3>SSLRequire est obsol&egrave;te</h3>
<p><code>SSLRequire</code> est obsol&egrave;te et doit en g&eacute;n&eacute;ral &ecirc;tre
remplac&eacute;e par l'expression <a href="mod_authz_core.html#reqexpr">Require</a>. La syntaxe <a href="../expr.html">ap_expr</a> de l'expression <code>Require</code> est
une extension de la syntaxe de <code>SSLRequire</code>, avec les
diff&eacute;rences suivantes :</p>

<p>Avec <code>SSLRequire</code>, les op&eacute;rateurs de comparaison
<code>&lt;</code>, <code>&lt;=</code>, ... sont strictement &eacute;quivalents
aux op&eacute;rateurs <code>lt</code>, <code>le</code>, ... , et fonctionnent
selon une m&eacute;thode qui compare tout d'abord la longueur des deux cha&icirc;nes,
puis l'ordre alphab&eacute;tique. Les expressions <a href="../expr.html">ap_expr</a>, quant &agrave; elles, poss&egrave;dent deux jeux
d'op&eacute;rateurs de comparaison : les op&eacute;rateurs <code>&lt;</code>,
<code>&lt;=</code>, ... effectuent une comparaison alphab&eacute;tique de
cha&icirc;nes, alors que les op&eacute;rateurs <code>-lt</code>, <code>-le</code>,
... effectuent une comparaison d'entiers. Ces derniers poss&egrave;dent aussi
des alias sans tiret initial : <code>lt</code>, <code>le</code>, ...
</p>

</div>

<p>Cette directive permet de sp&eacute;cifier une condition g&eacute;n&eacute;rale d'acc&egrave;s
qui doit &ecirc;tre enti&egrave;rement satisfaite pour que l'acc&egrave;s soit autoris&eacute;.
C'est une directive tr&egrave;s puissante, car la condition d'acc&egrave;s sp&eacute;cifi&eacute;e
est une expression bool&eacute;enne complexe et arbitraire contenant un nombre
quelconque de v&eacute;rifications quant aux autorisations d'acc&egrave;s.</p>
<p>
L'<var>expression</var> doit respecter la syntaxe suivante (fournie ici
sous la forme d'une notation dans le style de la grammaire BNF) :</p>
<blockquote>
<pre>expr     ::= "<strong>true</strong>" | "<strong>false</strong>"
           | "<strong>!</strong>" expr
           | expr "<strong>&amp;&amp;</strong>" expr
           | expr "<strong>||</strong>" expr
           | "<strong>(</strong>" expr "<strong>)</strong>"
           | comp

comp     ::= word "<strong>==</strong>" word | word "<strong>eq</strong>" word
           | word "<strong>!=</strong>" word | word "<strong>ne</strong>" word
           | word "<strong>&lt;</strong>"  word | word "<strong>lt</strong>" word
           | word "<strong>&lt;=</strong>" word | word "<strong>le</strong>" word
           | word "<strong>&gt;</strong>"  word | word "<strong>gt</strong>" word
           | word "<strong>&gt;=</strong>" word | word "<strong>ge</strong>" word
           | word "<strong>in</strong>" "<strong>{</strong>" wordlist "<strong>}</strong>"
           | word "<strong>in</strong>" "<strong>PeerExtList(</strong>" word "<strong>)</strong>"
           | word "<strong>=~</strong>" regex
           | word "<strong>!~</strong>" regex

wordlist ::= word
           | wordlist "<strong>,</strong>" word

word     ::= digit
           | cstring
           | variable
           | function

digit    ::= [0-9]+
cstring  ::= "..."
variable ::= "<strong>%{</strong>" varname "<strong>}</strong>"
function ::= funcname "<strong>(</strong>" funcargs "<strong>)</strong>"</pre>
</blockquote>
<p>Pour <code>varname</code>, toute variable d&eacute;crite dans <a href="#envvars">Variables d'environnement</a> pourra &ecirc;tre utilis&eacute;e.
Pour <code>funcname</code>, vous trouverez la liste des fonctions
disponibles dans la <a href="../expr.html#functions">documentation
ap_expr</a>.</p>

<p><var>expression</var> est interpr&eacute;t&eacute;e et traduite
sous une forme machine interne lors du chargement de la configuration,
puis &eacute;valu&eacute;e lors du traitement de la requ&ecirc;te. Dans le contexte des
fichiers .htaccess, <var>expression</var> est interpr&eacute;t&eacute;e et ex&eacute;cut&eacute;e
chaque fois que le fichier .htaccess intervient lors du traitement de la
requ&ecirc;te.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)-/                   \
            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd."          \
            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"}    \
            and %{TIME_WDAY} -ge 1 and %{TIME_WDAY} -le 5          \
            and %{TIME_HOUR} -ge 8 and %{TIME_HOUR} -le 20       ) \
           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/</pre>
</div>


<p>La fonction <code>PeerExtList(<var>identifiant objet</var>)</code>
recherche une instance d'extension de certificat X.509 identifi&eacute;e par
<var>identifiant objet</var> (OID) dans le certificat client. L'expression est
&eacute;valu&eacute;e &agrave; true si la partie gauche de la cha&icirc;ne correspond exactement &agrave;
la valeur d'une extension identifi&eacute;e par cet OID (Si plusieurs
extensions poss&egrave;dent le m&ecirc;me OID, l'une d'entre elles au moins doit
correspondre).
</p>

<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRequire "foobar" in PeerExtList("1.2.3.4.5.6")</pre>
</div>

<div class="note"><h3>Notes &agrave; propos de la fonction PeerExtList</h3>

<ul>

<li><p>L'identifiant objet peut &ecirc;tre sp&eacute;cifi&eacute; soit comme un nom
descriptif reconnu par la biblioth&egrave;que SSL, tel que
<code>"nsComment"</code>, soit comme un OID num&eacute;rique tel que
<code>"1.2.3.4.5.6"</code>.</p></li>

<li><p>Les expressions contenant des types connus de la biblioth&egrave;que
SSL sont transform&eacute;es en cha&icirc;nes avant comparaison. Pour les extensions
contenant un type non connu de la biblioth&egrave;que SSL, mod_ssl va essayer
d'interpr&eacute;ter la valeur s'il s'agit d'un des types ASN.1 primaires UTF8String,
IA5String, VisibleString, ou BMPString. Si l'extension correspond &agrave; un
de ces types, la cha&icirc;ne sera convertie en UTF-8 si n&eacute;cessaire, puis
compar&eacute;e avec la partie gauche de l'expression.</p></li>

</ul>
</div>


<h3>Voir aussi</h3>
<ul>
<li><a href="../env.html">Les variables d'environnement dans le
serveur HTTP Apache</a>, pour d'autres exemples.
</li>
<li><a href="mod_authz_core.html#reqexpr">Require expr</a></li>
<li><a href="../expr.html">Syntaxe g&eacute;n&eacute;rale des expressions dans le
serveur HTTP Apache</a>
</li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslrequiressl">Directive <span id="SSLRequireSSL">SSLRequireSSL</span> <a title="Lien permanent" href="#sslrequiressl" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interdit l'acc&egrave;s lorsque la requ&ecirc;te HTTP n'utilise pas
SSL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLRequireSSL</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autoris&eacute;es:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive interdit l'acc&egrave;s si HTTP sur SSL (c'est &agrave; dire HTTPS)
n'est pas activ&eacute; pour la connexion courante. Ceci est tr&egrave;s pratique dans
un serveur virtuel o&ugrave; SSL est activ&eacute; ou dans un r&eacute;pertoire pour se
prot&eacute;ger des erreurs de configuration qui pourraient donner acc&egrave;s &agrave; des
ressources prot&eacute;g&eacute;es. Lorsque cette directive est pr&eacute;sente, toutes les
requ&ecirc;tes qui n'utilisent pas SSL sont rejet&eacute;es.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRequireSSL</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslsessioncache">Directive <span id="SSLSessionCache">SSLSessionCache</span> <a title="Lien permanent" href="#sslsessioncache" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Type du cache de session SSL global et
inter-processus</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSessionCache <var>type</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLSessionCache none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet de configurer le type de stockage du cache de
session SSL global et inter-processus. Ce cache est une fonctionnalit&eacute;
optionnelle qui acc&eacute;l&egrave;re le traitement parall&egrave;le des requ&ecirc;tes. Pour ce
qui est des requ&ecirc;tes vers un m&ecirc;me processus du serveur (via HTTP
keep-alive), OpenSSL met en cache les informations de session SSL en
interne. Mais comme les clients modernes demandent des images en ligne
et d'autres donn&eacute;es via des requ&ecirc;tes parall&egrave;les (un nombre de quatre
requ&ecirc;tes parall&egrave;les est courant), ces requ&ecirc;tes vont &ecirc;tre servies par
<em>plusieurs</em> processus du serveur pr&eacute;-d&eacute;clench&eacute;s. Ici, un cache
inter-processus permet d'&eacute;viter des n&eacute;gociations de session
inutiles.</p>
<p>
Les quatre <var>type</var>s de stockage suivants sont actuellement
support&eacute;s :</p>
<ul>
<li><code>none</code>

    <p>Cette valeur d&eacute;sactive le cache de session global et
    inter-processus, ce qui va ralentir le serveur de mani&egrave;re sensible
    et peut poser probl&egrave;me avec certains navigateurs, en particulier si
    les certificats clients sont activ&eacute;s. Cette configuration n'est pas
    recommand&eacute;e.</p></li>

<li><code>nonenotnull</code>

    <p>Cette valeur d&eacute;sactive tout cache de session global et
    inter-processus. Cependant, elle force OpenSSL &agrave; envoyer un
    identifiant de session non nul afin de s'adapter aux clients bogu&eacute;s
    qui en n&eacute;cessitent un.</p></li>

<li><code>dbm:/chemin/vers/fichier-donn&eacute;es</code>

    <p>Cette valeur utilise un fichier de hashage DBM sur disque local
    pour synchroniser les caches OpenSSL locaux en m&eacute;moire des processus
    du serveur. Ce cache de session peut &ecirc;tre sujet &agrave; des probl&egrave;mes de
    fiabilit&eacute; sous forte charge. Pour l'utiliser, le module
    <code class="module"><a href="../mod/mod_socache_dbm.html">mod_socache_dbm</a></code> doit &ecirc;tre charg&eacute;.</p></li>

<li><code>shmcb:/chemin/vers/fichier-donn&eacute;es</code>[<code>(</code><var>nombre</var><code>)</code>]

    <p>Cette valeur utilise un tampon cyclique &agrave; hautes performances
    (d'une taille d'environ <var>nombre</var> octets) dans un segment de
    m&eacute;moire partag&eacute;e en RAM (&eacute;tabli via
    <code>/chemin/vers/fichier-donn&eacute;es</code>, pour synchroniser les
    caches OpenSSL locaux en m&eacute;moire des processus du serveur. C'est le
    type de cache de session recommand&eacute;. Pour l'utiliser, le module
    <code class="module"><a href="../mod/mod_socache_shmcb.html">mod_socache_shmcb</a></code> doit &ecirc;tre charg&eacute;.</p></li>

<li><code>dc:UNIX:/chemin/vers/socket</code>

    <p>Cette valeur utilise les biblioth&egrave;ques de mise en cache de
    sessions distribu&eacute;e sur <a href="http://distcache.sourceforge.net/">distcache</a>.
    L'argument doit sp&eacute;cifier le serveur ou mandataire &agrave; utiliser en
    utilisant la syntaxe d'adressage distcache ; par exemple,
    <code>UNIX:/chemin/vers/socket</code> sp&eacute;cifie une socket de domaine
    Unix (en g&eacute;n&eacute;ral un mandataire de dc_client local) ;
    <code>IP:serveur.example.com:9001</code> sp&eacute;cifie une adresse IP.
    Pour l'utiliser, le module <code class="module"><a href="../mod/mod_socache_dc.html">mod_socache_dc</a></code> doit &ecirc;tre
    charg&eacute;.</p></li>

</ul>

<div class="example"><h3>Exemples</h3><pre class="prettyprint lang-config">SSLSessionCache "dbm:/usr/local/apache/logs/ssl_gcache_data"
SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_gcache_data(512000)"</pre>
</div>

<p>Le mutex <code>ssl-cache</code> permet de s&eacute;rialiser l'acc&egrave;s au cache
de session afin d'&eacute;viter toute corruption. Ce mutex peut &ecirc;tre configur&eacute;
via la directive <code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code>.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslsessioncachetimeout">Directive <span id="SSLSessionCacheTimeout">SSLSessionCacheTimeout</span> <a title="Lien permanent" href="#sslsessioncachetimeout" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de secondes avant l'expiration d'une session SSL
dans le cache de sessions</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSessionCacheTimeout <var>secondes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLSessionCacheTimeout 300</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>S'applique aussi &agrave; la reprise de session TLS (RFC 5077) &agrave;
partir de la version 2.4.10 du serveur HTTP Apache</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir la dur&eacute;e de vie en secondes des
informations stock&eacute;es dans le cache de sessions SSL global et
inter-processus, dans le cache OpenSSL interne en m&eacute;moire et pour
les sessions r&eacute;initialis&eacute;es par la reprise de session TLS (RFC 5077). elle peut
&ecirc;tre d&eacute;finie &agrave; une valeur d'environ 15 &agrave; des fins de test, mais &agrave; une
valeur tr&egrave;s sup&eacute;rieure comme 300 en production.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLSessionCacheTimeout 600</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslsessionticketkeyfile">Directive <span id="SSLSessionTicketKeyFile">SSLSessionTicketKeyFile</span> <a title="Lien permanent" href="#sslsessionticketkeyfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Cl&eacute; de chiffrement/d&eacute;chiffrement permanente pour les
tickets de session TLS</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSessionTicketKeyFile <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4.0 du serveur HTTP
Apache, sous r&eacute;serve que l'on utilise une version 0.9.8h ou sup&eacute;rieure
d'OpenSSL</td></tr>
</table>
<p>Cette directive permet de d&eacute;finir une cl&eacute; secr&egrave;te pour le chiffrement et le
d&eacute;chiffrement des tickets de session TLS selon les pr&eacute;conisations de la
<a href="https://www.rfc-editor.org/rfc/rfc5077">RFC 5077</a>. Elle a &eacute;t&eacute; con&ccedil;ue &agrave; l'origine pour les environnements de
clusters o&ugrave; les donn&eacute;es des sessions TLS doivent &ecirc;tre partag&eacute;es entre plusieurs
noeuds.  Pour les configurations ne comportant qu'une seule instance de httpd,
il est pr&eacute;f&eacute;rable d'utiliser les cl&eacute;s (al&eacute;atoires) g&eacute;n&eacute;r&eacute;es par mod_ssl au
d&eacute;marrage du serveur.</p>
<p>Le fichier doit contenir 48 octets de donn&eacute;es al&eacute;atoires cr&eacute;&eacute;es de
pr&eacute;f&eacute;rence par une source &agrave; haute entropie. Sur un syst&egrave;me de type UNIX,
il est possible de cr&eacute;er le fichier contenant la cl&eacute; de la mani&egrave;re
suivante :</p>

<div class="example"><p><code>
dd if=/dev/random of=/chemin/vers/fichier.tkey bs=1 count=48
</code></p></div>

<p>Ces cl&eacute;s doivent &ecirc;tre renouvel&eacute;es fr&eacute;quemment, car il s'agit du seul
moyen d'invalider un ticket de session existant - OpenSSL ne permet pas
actuellement de sp&eacute;cifier une limite &agrave; la dur&eacute;e de
vie des tickets. Une nouvelle cl&eacute; ne peut &ecirc;tre utilis&eacute;e qu'apr&egrave;s avoir
red&eacute;marr&eacute; le serveur. Tous les tickets de session existants deviennent
invalides apr&egrave;s le red&eacute;marrage du serveur.</p>

<div class="warning">
<p>Ce fichier contient des donn&eacute;es sensibles et doit donc &ecirc;tre prot&eacute;g&eacute;
par des permissions similaires &agrave; celles du fichier sp&eacute;cifi&eacute; par la
directive <code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code>.</p>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslsessiontickets">Directive <span id="SSLSessionTickets">SSLSessionTickets</span> <a title="Lien permanent" href="#sslsessiontickets" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active ou d&eacute;sactive les tickets de session TLS</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSessionTickets on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLSessionTickets on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible &agrave; partir de la version 2.4.11 du serveur HTTP
Apache, sous r&eacute;serve d'utiliser OpenSSL version 0.9.8f ou sup&eacute;rieure.
</td></tr>
</table>
<p>Cette directive permet d'activer ou de d&eacute;sactiver l'utilisation des
tickets de session TLS (RFC 5077).</p>
<div class="warning">
<p>Les tickets de session TLS sont activ&eacute;s par d&eacute;faut. Les utiliser sans
red&eacute;marrer le serveur selon une p&eacute;riodicit&eacute; appropri&eacute;e (par exemple
quotidiennement) compromet cependant le niveau de confidentialit&eacute;.</p>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslsrpunknownuserseed">Directive <span id="SSLSRPUnknownUserSeed">SSLSRPUnknownUserSeed</span> <a title="Lien permanent" href="#sslsrpunknownuserseed" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Source d'al&eacute;a pour utilisateur SRP inconnu</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSRPUnknownUserSeed <var>secret-string</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4.4 du serveur HTTP
Apache, si la version 1.0.1 ou sup&eacute;rieure d'OpenSSL est utilis&eacute;e.</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir la source d'al&eacute;a &agrave; utiliser
pour les utilisateurs SRP inconnus, ceci afin de combler les manques en
cas d'existence d'un tel utilisateur. Elle d&eacute;finit une cha&icirc;ne secr&egrave;te. Si
cette directive n'est pas d&eacute;finie, Apache renverra une alerte
UNKNOWN_PSK_IDENTITY aux clients qui fournissent un nom d'utilisateur
inconnu.
</p>
<div class="example"><h3>Exemple</h3><p><code>
SSLSRPUnknownUserSeed "secret"
</code></p></div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslsrpverifierfile">Directive <span id="SSLSRPVerifierFile">SSLSRPVerifierFile</span> <a title="Lien permanent" href="#sslsrpverifierfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier de v&eacute;rification SRP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSRPVerifierFile <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.4.4 du serveur HTTP
Apache, si la version 1.0.1 ou sup&eacute;rieure d'OpenSSL est utilis&eacute;e.</td></tr>
</table>
<p>
Cette directive permet d'activer TLS-SRP et de d&eacute;finir le chemin du
fichier de v&eacute;rification OpenSSL SRP (Mot de passe distant s&eacute;curis&eacute;)
contenant les noms d'utilisateurs TLS-SRP, les v&eacute;rificateurs, les
"grains de sel" (salts), ainsi que les param&egrave;tres de groupe.</p>
<div class="example"><h3>Exemple</h3><p><code>
SSLSRPVerifierFile "/path/to/file.srpv"
</code></p></div>
<p>
Le fichier de v&eacute;rification peut &ecirc;tre cr&eacute;&eacute; via l'utilitaire en ligne de
commande <code>openssl</code> :</p>
<div class="example"><h3>Cr&eacute;ation du fichier de v&eacute;rification SRP</h3><p><code>
openssl srp -srpvfile passwd.srpv -userinfo "some info" -add username
</code></p></div>
<p>La valeur affect&eacute;e au param&egrave;tre optionnel <code>-userinfo</code> est
enregistr&eacute;e dans la variable d'environnement
<code>SSL_SRP_USERINFO</code>.</p>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingcache">Directive <span id="SSLStaplingCache">SSLStaplingCache</span> <a title="Lien permanent" href="#sslstaplingcache" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration du cache pour l'agrafage OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingCache <var>type</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou sup&eacute;rieure</td></tr>
</table>
<p>Si <code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> est &agrave; "on",
cette directive permet de configurer le cache destin&eacute; &agrave; stocker les
r&eacute;ponses OCSP incluses dans la n&eacute;gociation TLS. La configuration d'un
cache est obligatoire pour pouvoir utiliser l'agrafage OCSP. A
l'exception de <code>none</code> et <code>nonenotnull</code>, cette
directive supporte les m&ecirc;mes types de stockage que la directive
<code class="directive"><a href="#sslsessioncache">SSLSessionCache</a></code>.</p>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingerrorcachetimeout">Directive <span id="SSLStaplingErrorCacheTimeout">SSLStaplingErrorCacheTimeout</span> <a title="Lien permanent" href="#sslstaplingerrorcachetimeout" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dur&eacute;e de vie des r&eacute;ponses invalides dans le cache pour
agrafage OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingErrorCacheTimeout <var>secondes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLStaplingErrorCacheTimeout 600</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou sup&eacute;rieure</td></tr>
</table>
<p>Cette directive permet de d&eacute;finir la dur&eacute;e de vie des r&eacute;ponses
<em>invalides</em> dans le cache pour agrafage OCSP configur&eacute; via la
directive <code class="directive"><a href="#sslstaplingcache">SSLStaplingCache</a></code>. Pour
d&eacute;finir la dur&eacute;e de vie des r&eacute;ponses valides, voir la directive
<code class="directive"><a href="#sslstaplingstandardcachetimeout">SSLStaplingStandardCacheTimeout</a></code>.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingfaketrylater">Directive <span id="SSLStaplingFakeTryLater">SSLStaplingFakeTryLater</span> <a title="Lien permanent" href="#sslstaplingfaketrylater" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>G&eacute;n&egrave;re une r&eacute;ponse "tryLater" pour les requ&ecirc;tes OCSP &eacute;chou&eacute;es</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingFakeTryLater on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLStaplingFakeTryLater on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou sup&eacute;rieure</td></tr>
</table>
<p>Lorsque cette directive est activ&eacute;e, et si une requ&ecirc;te vers un
serveur OCSP &agrave; des fins d'inclusion dans une n&eacute;gociation TLS &eacute;choue,
mod_ssl va g&eacute;n&eacute;rer une r&eacute;ponse "tryLater" pour le client (<code class="directive"><a href="#sslstaplingreturnrespondererrors">SSLStaplingReturnResponderErrors</a></code> doit &ecirc;tre
activ&eacute;e).</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingforceurl">Directive <span id="SSLStaplingForceURL">SSLStaplingForceURL</span> <a title="Lien permanent" href="#sslstaplingforceurl" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Remplace l'URI du serveur OCSP sp&eacute;cifi&eacute; dans l'extension
AIA du certificat</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingForceURL <var>uri</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou sup&eacute;rieure</td></tr>
</table>
<p>Cette directive permet de remplacer l'URI du serveur OCSP extraite de
l'extension authorityInfoAccess (AIA) du certificat. Elle peut s'av&eacute;rer
utile lorsqu'on passe par un mandataire</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingrespondertimeout">Directive <span id="SSLStaplingResponderTimeout">SSLStaplingResponderTimeout</span> <a title="Lien permanent" href="#sslstaplingrespondertimeout" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Temps d'attente maximum pour les requ&ecirc;tes vers les serveurs
OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingResponderTimeout <var>secondes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLStaplingResponderTimeout 10</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou sup&eacute;rieure</td></tr>
</table>
<p>Cette directive permet de d&eacute;finir le temps d'attente maximum lorsque
mod_ssl envoie une requ&ecirc;te vers un serveur OCSP afin d'obtenir une
r&eacute;ponse destin&eacute;e &agrave; &ecirc;tre incluse dans les n&eacute;gociations TLS avec les
clients (<code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> doit
avoir &eacute;t&eacute; activ&eacute;e au pr&eacute;alable).</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingresponsemaxage">Directive <span id="SSLStaplingResponseMaxAge">SSLStaplingResponseMaxAge</span> <a title="Lien permanent" href="#sslstaplingresponsemaxage" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Age maximum autoris&eacute; des r&eacute;ponses OCSP incluses dans la
n&eacute;gociation TLS</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingResponseMaxAge <var>secondes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLStaplingResponseMaxAge -1</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou sup&eacute;rieure</td></tr>
</table>
<p>Cette directive permet de d&eacute;finir l'&acirc;ge maximum autoris&eacute;
("fra&icirc;cheur") des r&eacute;ponses OCSP incluses dans la n&eacute;gociation TLS
(<code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> doit
avoir &eacute;t&eacute; activ&eacute;e au pr&eacute;alable). La valeur par d&eacute;faut (<code>-1</code>)
ne d&eacute;finit aucun &acirc;ge maximum, ce qui signifie que les r&eacute;ponses OCSP sont
consid&eacute;r&eacute;es comme valides &agrave; partir du moment o&ugrave; le contenu de leur champ
<code>nextUpdate</code> se trouve dans le futur.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingresponsetimeskew">Directive <span id="SSLStaplingResponseTimeSkew">SSLStaplingResponseTimeSkew</span> <a title="Lien permanent" href="#sslstaplingresponsetimeskew" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dur&eacute;e de vie maximale autoris&eacute;e des r&eacute;ponses OCSP incluses dans la
n&eacute;gociation TLS</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingResponseTimeSkew <var>secondes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLStaplingResponseTimeSkew 300</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou sup&eacute;rieure</td></tr>
</table>
<p>Cette directive permet de sp&eacute;cifier l'intervalle de temps maximum que
mod_ssl va calculer en faisant la diff&eacute;rence entre les contenus des
champs <code>nextUpdate</code> et <code>thisUpdate</code> des r&eacute;ponses
OCSP incluses dans la n&eacute;gociation TLS. Pour pouvoir utiliser cette
directive, <code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> doit
&ecirc;tre &agrave; "on".</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingreturnrespondererrors">Directive <span id="SSLStaplingReturnResponderErrors">SSLStaplingReturnResponderErrors</span> <a title="Lien permanent" href="#sslstaplingreturnrespondererrors" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Transmet au client les erreurs survenues lors des requ&ecirc;tes
OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingReturnResponderErrors on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLStaplingReturnResponderErrors on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou sup&eacute;rieure</td></tr>
</table>
<p>Lorsque cette directive est activ&eacute;e, mod_ssl va transmettre au client les
r&eacute;ponses concernant les requ&ecirc;tes OCSP &eacute;chou&eacute;es (comme les r&eacute;ponses avec un
statut g&eacute;n&eacute;ral autre que "successful", les r&eacute;ponses avec un statut de certificat
autre que "good", les r&eacute;ponses arriv&eacute;es &agrave; expiration, etc...).  Lorsqu'elle est
&agrave; <code>off</code>, seules les r&eacute;ponses avec un statut de certificat &eacute;gal &agrave;
"good" ou "revoked" seront incluses dans la n&eacute;gociation TLS. Les r&eacute;ponses avec
un statut "revoked" sont toujours incluses quelle que soit cette d&eacute;finition, car
supprimer une r&eacute;vocation connue constituerait un risque de s&eacute;curit&eacute;.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingstandardcachetimeout">Directive <span id="SSLStaplingStandardCacheTimeout">SSLStaplingStandardCacheTimeout</span> <a title="Lien permanent" href="#sslstaplingstandardcachetimeout" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dur&eacute;e de vie des r&eacute;ponses OCSP dans le cache</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingStandardCacheTimeout <var>secondes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLStaplingStandardCacheTimeout 3600</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou sup&eacute;rieure</td></tr>
</table>
<p>Cette directive permet de d&eacute;finir la dur&eacute;e de vie des r&eacute;ponses OCSP
dans le cache configur&eacute; via la directive <code class="directive"><a href="#sslstaplingcache">SSLStaplingCache</a></code>. Elle ne s'applique qu'aux
r&eacute;ponse <em>valides</em>, alors que la directive <code class="directive"><a href="#sslstaplingerrorcachetimeout">SSLStaplingErrorCacheTimeout</a></code> s'applique aux
r&eacute;ponses invalides ou non disponibles.
</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstrictsnivhostcheck">Directive <span id="SSLStrictSNIVHostCheck">SSLStrictSNIVHostCheck</span> <a title="Lien permanent" href="#sslstrictsnivhostcheck" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contr&ocirc;le de l'acc&egrave;s des clients non-SNI &agrave; un serveur virtuel &agrave;
base de nom.
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStrictSNIVHostCheck on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLStrictSNIVHostCheck off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.2.12 d'Apache</td></tr>
</table>
<p>
Cette directive permet de contr&ocirc;ler l'acc&egrave;s des clients non-SNI &agrave; un serveur
virtuel &agrave; base de nom. Si elle est d&eacute;finie &agrave; <code>on</code> dans le
serveur virtuel &agrave; base de nom par d&eacute;faut, les
clients non-SNI ne seront autoris&eacute;s &agrave; acc&eacute;der &agrave; aucun serveur virtuel
appartenant &agrave; cette combinaison IP/port. Par
contre, si elle est d&eacute;finie &agrave; <code>on</code> dans un serveur virtuel
quelconque, les clients non-SNI ne se verront interdire l'acc&egrave;s qu'&agrave; ce
serveur.
</p>

<p>
Si cette directive est &agrave; <code>on</code> dans un contexte de serveur
(globalement, en dehors de tout bloc <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>), tous les serveurs virtuels qui ne
l'outrepassent pas h&eacute;ritent de la configuration. Cela a le m&ecirc;me effet que la
d&eacute;finir &agrave; <code>on</code> dans tous les serveurs virtuels par d&eacute;faut &agrave; base de
nom&nbsp;: les clients non-SNI se verront refuser l'acc&egrave;s &agrave; tout serveur virtuel &agrave;
base de nom.
</p>

<div class="warning"><p>
Cette option n'est disponible que si httpd a &eacute;t&eacute; compil&eacute; avec une
version d'OpenSSL supportant SNI.
</p></div>

<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLStrictSNIVHostCheck on</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslusername">Directive <span id="SSLUserName">SSLUserName</span> <a title="Lien permanent" href="#sslusername" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom de la variable servant &agrave; d&eacute;terminer le nom de
l'utilisateur</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLUserName <var>nom-var</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autoris&eacute;es:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette variable permet de d&eacute;finir le champ "user" de l'objet de la
requ&ecirc;te Apache. Ce champ est utilis&eacute; par des modules de plus bas niveau
pour identifier l'utilisateur avec une cha&icirc;ne de caract&egrave;res. En
particulier, l'utilisation de cette directive peut provoquer la
d&eacute;finition de la variable d'environnement <code>REMOTE_USER</code>.
La valeur de l'argument <var>nom-var</var> peut correspondre &agrave; toute <a href="#envvars">variable d'environnement SSL</a>.</p>

<p>Lorsque l'option <code>FakeBasicAuth</code> (voir <a href="#ssloptions">SSLOptions</a>) ou la directive <code class="directive"><a href="#authbasicfake">AuthBasicFake</a></code> sont activ&eacute;es, cette directive permet
de contr&ocirc;ler quelle partie du certificat client est utilis&eacute;e comme nom
d'utilisateur. Sans la directive <code class="directive">SSLUserName</code>,
<code>REMOTE_USER</code> peut ne pas &ecirc;tre d&eacute;finie pour d'autres modules ou
scripts CGI.</p>

<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLUserName SSL_CLIENT_S_DN_CN</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslusestapling">Directive <span id="SSLUseStapling">SSLUseStapling</span> <a title="Lien permanent" href="#sslusestapling" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active l'ajout des r&eacute;ponses OCSP &agrave; la n&eacute;gociation TLS</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLUseStapling on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLUseStapling off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou sup&eacute;rieure</td></tr>
</table>
<p>Cette directive permet d'activer l'"Agrafage OCSP" (OCSP stapling)
selon la d&eacute;finition de l'extension TLS "Certificate Status Request"
fournie dans la RFC 6066. Si elle est activ&eacute;e et si le client le
demande, mod_ssl va inclure une r&eacute;ponse OCSP &agrave; propos de son propre
certificat dans la n&eacute;gociation TLS. Pour pouvoir activer l'Agrafage
OCSP, il est n&eacute;cessaire de configurer un <code class="directive"><a href="#sslstaplingcache">SSLStaplingCache</a></code>.</p>

<p>L'agrafage OCSP dispense le client de requ&eacute;rir le serveur OCSP
directement ; il faut cependant noter que selon les sp&eacute;cifications de la
RFC 6066, la r&eacute;ponse <code>CertificateStatus</code> du serveur ne peut
inclure une r&eacute;ponse OCSP que pour un seul certificat. Pour les
certificats de serveur comportant des certificats de CA interm&eacute;diaires
dans leur cha&icirc;ne (c'est un cas typique de nos jours), l'impl&eacute;mentation
actuelle de l'agrafage OCSP n'atteint que partiellement l'objectif d'
"&eacute;conomie en questions/r&eacute;ponse et en ressources". Pour plus de d&eacute;tails,
voir la <a href="https://www.rfc-editor.org/rfc/rfc6961">RFC 6961</a> (TLS
Multiple Certificate Status Extension).
</p>

<p>Lorsque l'agrafage OCSP est activ&eacute;, le mutex
<code>ssl-stapling</code> contr&ocirc;le l'acc&egrave;s au cache de l'agrafage OCSP
afin de pr&eacute;venir toute corruption, et le mutex
<code>sss-stapling-refresh</code> contr&ocirc;le le raffra&icirc;chissement des
r&eacute;ponses OCSP. Ces mutex peuvent &ecirc;tre configur&eacute;s via la directive
<code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code>.
</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslverifyclient">Directive <span id="SSLVerifyClient">SSLVerifyClient</span> <a title="Lien permanent" href="#sslverifyclient" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Niveau de v&eacute;rification du certificat client</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLVerifyClient <var>niveau</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLVerifyClient none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autoris&eacute;es:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet de d&eacute;finir le niveau de v&eacute;rification du
certificat pour l'authentification du client. Notez que cette directive
peut &ecirc;tre utilis&eacute;e &agrave; la fois dans les contextes du serveur principal et
du r&eacute;pertoire. Dans le contexte du serveur principal, elle s'applique au
processus d'authentification du client utilis&eacute; au cours de la
n&eacute;gociation SSL standard lors de l'&eacute;tablissement d'une connexion. Dans
un contexte de r&eacute;pertoire, elle force une ren&eacute;gociation SSL avec le
niveau de v&eacute;rification du client sp&eacute;cifi&eacute;, apr&egrave;s la lecture d'une
requ&ecirc;te HTTP, mais avant l'envoi de la r&eacute;ponse HTTP.</p>
<p>
Les valeurs de <var>niveau</var> disponibles sont les suivantes :</p>
<ul>
<li><strong>none</strong>:
     aucun certificat client n'est requis</li>
<li><strong>optional</strong>:
     le client <em>peut</em> pr&eacute;senter un certificat valide</li>
<li><strong>require</strong>:
     le client <em>doit</em> pr&eacute;senter un certificat valide</li>
<li><strong>optional_no_ca</strong>:
     le client peut pr&eacute;senter un certificat valide, mais il n'est pas
     n&eacute;cessaire que ce dernier soit v&eacute;rifiable (avec succ&egrave;s). Cette option ne
     peut pas &ecirc;tre utilis&eacute;e lors de l'authentification du client.</li>
</ul>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLVerifyClient require</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslverifydepth">Directive <span id="SSLVerifyDepth">SSLVerifyDepth</span> <a title="Lien permanent" href="#sslverifydepth" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Profondeur maximale des certificats de CA pour la
v&eacute;rification des certificats clients</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLVerifyDepth <var>nombre</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLVerifyDepth 1</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autoris&eacute;es:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet de sp&eacute;cifier la profondeur maximale &agrave; laquelle
mod_ssl va effectuer sa v&eacute;rification avant de d&eacute;cider que le client ne
poss&egrave;de pas de certificat valide. Notez que cette directive peut &ecirc;tre
utilis&eacute;e &agrave; la fois dans les contextes du serveur principal et de
r&eacute;pertoire. Dans le contexte du serveur principal, elle s'applique au
processus d'authentification du client utilis&eacute; au cours de la
n&eacute;gociation SSL standard lors de l'&eacute;tablissement d'une connexion. Dans
un contexte de r&eacute;pertoire, elle force une ren&eacute;gociation SSL avec le
client selon la nouvelle profondeur sp&eacute;cifi&eacute;e, apr&egrave;s la lecture d'une
requ&ecirc;te HTTP, mais avant l'envoi de la r&eacute;ponse HTTP.</p>
<p>
La profondeur correspond au nombre maximum de fournisseurs de
certificats interm&eacute;diaires, c'est &agrave; dire le nombre maximum de
certificats de CA que l'on est autoris&eacute; &agrave; suivre lors de la v&eacute;rification
du certificat du client. Une profondeur de 0 signifie que seuls les
certificats clients auto-sign&eacute;s sont accept&eacute;s ; la profondeur par d&eacute;faut
de 1 signifie que le certificat client peut &ecirc;tre soit auto-sign&eacute;, soit
sign&eacute; par une CA connue directement du serveur (c'est &agrave; dire que le
certificat de la CA doit &ecirc;tre r&eacute;f&eacute;renc&eacute; par la directive <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code>), etc...</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLVerifyDepth 10</pre>
</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslvhostsnipolicy">Directive <span id="SSLVHostSNIPolicy">SSLVHostSNIPolicy</span> <a title="Lien permanent" href="#sslvhostsnipolicy" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finir la politique de compatibilit&eacute; pour l'acc&egrave;s des clients SNI
aux serveurs virtuels.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLVHostSNIPolicy strict|secure|authonly|insecure</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SSLVHostSNIPolicy secure</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible &agrave; partir de la version 2.4.66 du serveur HTTP Apache</td></tr>
</table><p>Cette directive permet de d&eacute;finir la politique &agrave; appliquer lors de la
v&eacute;rification de la compatibilit&eacute; du <code class="directive"><a href="../mod/core.html#serveur virtuel">&lt;serveur virtuel&gt;</a></code> identifi&eacute; par l'en-t&ecirc;te
<code>Host</code> d'une requ&ecirc;te HTTP avec le <code class="directive"><a href="../mod/core.html#serveur virtuel">&lt;serveur virtuel&gt;</a></code> identifi&eacute; depuis l'extension SNI
envoy&eacute;e au cours de la n&eacute;gociation de la connexion TLS initiale. Si une requ&ecirc;te
HTTP est associ&eacute;e &agrave; un serveur virtuel comportant une configuration SSL/TLS
incompatible selon la politique utilis&eacute;e, un message d'erreur HTTP avec code
d'&eacute;tat 421 ("Misdirected Request") sera envoy&eacute;.</p>

<p>La politique s'applique aussi aux connexions TLS pour lesquelles une
extension SNI n'est pas envoy&eacute;e lors de la n&eacute;gociation de connexion, et
utilisant la premi&egrave;re d&eacute;finition de serveur virtuel ou la d&eacute;finition par d&eacute;faut.
Si l'en-t&ecirc;te Host d'une requ&ecirc;te HTTP sur une telle connexion identifie un
serveur virtuel autre que celui par d&eacute;faut, la politique de compatibilit&eacute; sera
test&eacute;e.</p>

<p>La politique <code>strict</code> bloque toute requ&ecirc;te HTTP associ&eacute;e &agrave; un
serveur virtuel diff&eacute;rent de celui identifi&eacute; par SNI. La politique
<code>insecure</code> autorise toute requ&ecirc;te, quel que soit le serveur virtuel
associ&eacute;&nbsp;; une telle configuration pourra &ecirc;tre vuln&eacute;rable &agrave; <a href="https://httpd.apache.org/security/vulnerabilities_24.html">CVE-2025-23048</a>.
</p>

<p>Les politiques <code>secure</code> (politique par d&eacute;faut) et
<code>authonly</code> comparent certains aspects sp&eacute;cifiques des deux serveurs
virtuels, qui sont regroup&eacute;s en deux cat&eacute;gories&nbsp;:</p>

<ul>
  <li><strong>certificat/cl&eacute; de serveur ou restrictions de protocole/algorithme
  de chiffrement</strong>&nbsp;: directives qui d&eacute;terminent le certificat ou la cl&eacute;
  du serveur (<code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code>, etc.), restrictions de
  protocole ou d'algorithme
  de chiffrement (<code class="directive"><a href="#sslprotocol">SSLProtocol</a></code> et <code class="directive"><a href="#sslciphersuite">SSLCipherSuite</a></code>)</li>
  
  <li><strong>configuration de la certification et de l'authentification du
  client</strong>&nbsp;: directives qui affectent l'authentification du client et la
  v&eacute;rification de son certificat via TLS, telles que <code class="directive"><a href="#sslverifyclient">SSLVerifyClient</a></code>, <code class="directive"><a href="#sslverifymode">SSLVerifyMode</a></code>, <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code>, <code class="directive"><a href="#sslsrpverifierfile">SSLSRPVerifierFile</a></code>; toute utilisation de <code class="directive"><a href="#sslopensslconfcmd">SSLOpenSSLConfCmd</a></code></li>  
</ul>

<p>Le tableau suivant indique quand une requ&ecirc;te HTTP sera bloqu&eacute;e ou autoris&eacute;e
lorsque les configurations des serveurs virtuels diff&egrave;rent de la mani&egrave;re
d&eacute;crite, et en fonction des diff&eacute;rentes politiques utilis&eacute;es&nbsp;:</p>

<table class="bordered"><tr class="header">
  <th>Politique utilis&eacute;e</th>
  <th>Toute incoh&eacute;rence dans les serveurs virtuels</th>
  <th>Certificat/cl&eacute; du serveur, <br>ou restrictions de protocole/algorithme
  de chiffrement</th>
  <th>Certification client/<br>configuration de l'authentification</th>
</tr>
<tr>
  <td><code>strict</code></td><td>bloqu&eacute;e</td><td>bloqu&eacute;e</td><td>bloqu&eacute;e</td>
</tr>
<tr class="odd">
  <td><code>secure</code></td><td>autoris&eacute;e</td><td>bloqu&eacute;e</td><td>bloqu&eacute;e</td>
</tr>
<tr>
  <td><code>authonly</code></td><td>autoris&eacute;e</td><td>bloqu&eacute;e</td><td>autoris&eacute;e</td>
</tr>
<tr class="odd">
  <td><code>insecure</code></td><td>autoris&eacute;e</td><td>autoris&eacute;e</td><td>autoris&eacute;e</td>
</tr>
</table>

<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLVHostSNIPolicy authonly</pre>
</div>

</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_ssl.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_ssl.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autoris&eacute; sous <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>

Youez - 2016 - github.com/yon3zu
LinuXploit