123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- <!DOCTYPE html>
- <html lang="fr">
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>Status SSL/TLS banque & commerce en ligne</title>
- <link rel="stylesheet" href="bootstrap.min.css">
- <style>
- body {
- margin-top: 10px;
- }
-
- td {
- text-align: center;
- }
-
- .critical {
- background-color: #000;
- color: #fff;
- }
-
- tr:hover > td.critical, td:hover.critical {
- background-color: #333 !important;
- }
- </style>
- </head>
- <body>
- <div class="container-fluid">
- <div class="row">
- <div class="col-md-12">
- <table class="table table-bordered table-hover table-condensed">
- <tbody>
- <%
- first = true
- results.each do |r|
- unless first
- %>
- <tr>
- <th colspan="15"> </th>
- </tr>
- <%
- end
- first = false
- %>
- <tr>
- <th colspan="15" id="<%= r[0] %>"><%= r[0] %></th>
- </tr>
- <tr>
- <th rowspan="2">Site</th>
- <td rowspan="2">Grade</td>
- <td colspan="2">Certificate</td>
- <td colspan="4">Protocols</td>
- <td colspan="5">Ciphers</td>
- <td colspan="2">Best practices</td>
- </tr>
- <tr>
- <td>Key size (bits)</td>
- <td class="warning">SHA1 sig</td>
-
- <td class="critical">SSL v2</td>
- <td class="critical">SSL v3</td>
- <td class="success">TLS 1.2</td>
- <td class="info">TLS</td>
-
- <td>Strength (bits)</td>
- <td class="critical">MD5</td>
- <td class="warning">SHA1</td>
- <td class="critical">DES/RC4</td>
- <td class="danger">3DES</td>
-
- <td class="info">PFS</td>
- <td class="info">HSTS</td>
- </tr>
- <% r[1].each do |n|
- s = n.server
- %>
- <tr>
- <th id="<%= s.hostname %>">
- <a href="https://www.ssllabs.com/ssltest/analyze.html?d=<%= s.hostname %>" target="_blank">
- <%= s.hostname %>
- </a>
- </th>
- <% if s.is_a? Tls::TlsNotSupportedServer %>
- <td class="critical" colspan="16">
- No SSL/TLS
- </td>
- <%
- else
- rank_color = case n.grade
- when 'A+' then :info
- when 'A', 'A-' then :success
- when 'B', 'C' then :warning
- when 'T', 'M' then :critical
- else :danger
- end
- %>
- <td class="<%= rank_color %>">
- <%= n.grade %>
- </td>
-
- <td class="<%= s.key_size < 2048 ? :danger : s.key_size < 4096 ? :warning : :success %>">
- <% type, size = s.key %>
- <%= "#{size} (#{type.to_s.upcase})" %>
- <span class="sr-only">(<%= s.key_size < 2048 ? '☹' : '☺' %>)</span>
- </td>
- <td class="<%= s.sha1_sig? ? :warning : :success %>">
- <%= s.sha1_sig? ? '✓' : '✗' %>
- <span class="sr-only">(<%= s.sha1_sig? ? '☹' : '☺' %>)</span>
- </td>
-
- <td class="<%= s.sslv2? ? :critical : :success %>">
- <%= s.sslv2? ? '✓' : '✗' %>
- <span class="sr-only">(<%= s.sslv2? ? '☹' : '☺' %>)</span>
- </td>
- <td class="<%= s.sslv3? ? :critical : :success %>">
- <%= s.sslv3? ? '✓' : '✗' %>
- <span class="sr-only">(<%= s.sslv3? ? '☹' : '☺' %>)</span>
- </td>
- <td class="<%= s.tlsv1_2? ? :success : :danger %>">
- <%= s.tlsv1_2? ? '✓' : '✗' %>
- <span class="sr-only">(<%= s.tlsv1_2? ? '☺' : '☹' %>)</span>
- </td>
- <td class="<%= s.tls? ? (s.tls_only? ? :info : :success) : :danger %>">
- <%= s.tls? ? '✓' : '✗' %>
- <span class="sr-only">(<%= s.tls? ? '☺' : '☹' %>)</span>
- </td>
-
- <% cipher_size = s.cipher_size[:worst] %>
- <td class="<%= cipher_size < 112 ? :danger : cipher_size < 128 ? :warning : :success %>">
- <%= cipher_size %>
- <span class="sr-only">(<%= cipher_size < 128 ? '☹' : '☺' %>)</span>
- </td>
- <td class="<%= s.md5? ? :critical : :success %>">
- <%= s.md5? ? '✓' : '✗' %>
- <span class="sr-only">(<%= s.md5? ? '☹' : '☺' %>)</span>
- </td>
- <td class="<%= s.sha1? ? :warning : :success %>">
- <%= s.sha1? ? '✓' : '✗' %>
- <span class="sr-only">(<%= s.sha1? ? '☹' : '☺' %>)</span>
- </td>
- <td class="<%= (s.rc4? or s.des?) ? :critical : :success %>">
- <%= (s.rc4? or s.des?) ? '✓' : '✗' %>
- <span class="sr-only">(<%= (s.rc4? or s.des?) ? '☹' : '☺' %>)</span>
- </td>
- <td class="<%= s.des3? ? :danger : :success %>">
- <%= s.des3? ? '✓' : '✗' %>
- <span class="sr-only">(<%= s.des3? ? '☹' : '☺' %>)</span>
- </td>
-
- <td class="<%= s.pfs? ? (s.pfs_only? ? :info : :success) : :danger %>">
- <%= s.pfs? ? '✓' : '✗' %>
- <span class="sr-only">(<%= s.pfs? ? '☺' : '☹' %>)</span>
- </td>
- <td class="<%= s.hsts? ? (s.hsts_long? ? :info : :success) : :danger %>">
- <%= s.hsts? ? '✓' : '✗' %>
- <span class="sr-only">(<%= s.hsts? ? '☺' : '☹' %>)</span>
- </td>
- <% end %>
- </tr>
- <% end %>
- <tr>
- <th rowspan="2">Site</th>
- <td rowspan="2">Grade</td>
-
- <td>Key size (bits)</td>
- <td class="warning">SHA1 sig</td>
-
- <td class="critical">SSL v2</td>
- <td class="critical">SSL v3</td>
- <td class="success">TLS 1.2</td>
- <td class="info">TLS</td>
-
- <td>Strength (bits)</td>
- <td class="critical">MD5</td>
- <td class="warning">SHA1</td>
- <td class="critical">DES/RC4</td>
- <td class="danger">3DES</td>
-
- <td class="info">PFS</td>
- <td class="info">HSTS</td>
- </tr>
- <tr>
- <td colspan="2">Certificate</td>
- <td colspan="4">Protocols</td>
- <td colspan="5">Ciphers</td>
- <td colspan="2">Best practices</td>
- </tr>
- <% end %>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- </body>
- </html>
|